OpenEMR in Containers

sunsetsystems wrote on Thursday, June 30, 2016:

I’ve been using Linux Containers (LXC) for a few years and find it a nice lightweight alternative to virtual machines for securely wrapping an OpenEMR installation and all its dependencies.

Now Docker seems to be all the rage. Just wondering if anyone has used that with OpenEMR, and if so how was the experience?

Rod
http://www.sunsetsystems.com/

wakie87 wrote on Thursday, June 30, 2016:

I have used Docker before for other Open Source projects to try them out quickly. It was fast and easy as an end user to do. I had thought about making a Docker for OpenEMR.

For those saying “WTF is Docker?” see below for quick explanation:

http://blog.osteel.me/posts/2015/12/18/from-vagrant-to-docker-how-to-use-docker-for-local-web-development.html

Scott

visolveemr wrote on Monday, July 04, 2016:

Hi Rod Roark,
We have used docker for handling OpenEMR and this was done using a docker service provider. Initially we faced concerns on migrating to docker in handling the database and code updates. Further which we were able to sort it out in running the applications as ususal.

We chose docker system due to price and performace benefits.

Thanks
OpenEMR Customization / Support Team,
ViSolve Inc

sunsetsystems wrote on Monday, July 11, 2016:

Belated thanks for the replies.

I really like LXC and use it to run several isolated servers from my home office. It occurs to me that such a container would be very nice for distributing OpenEMR… sort of like virtual machines but smaller and faster and easier to work with. I figure the package would be around 300-500 MB compressed.

Benefits would include:

  • Removes more installation hassles than it adds
  • Portability for easy recovery or migration to new hardware
  • Can have multiple containers that are independent of each other for security, testing new releases etc.

Docker may work too, not sure what the scaling issues are with that considering the need for a single database.

Just my thought for the day. :slight_smile:

Rod
http://www.sunsetsystems.com/

matthewvita wrote on Sunday, August 14, 2016:

Would like to contribute my 2 cents to this thread.

Most of my experiences have been with VMs but I have recently worked with Docker/Docker Compose and am sold. Docker is inevitable for local dev and production deployments it seems.

One of my goals for this year is to learn either Kubernetes or AWS ECS (leaning towards Kubernetes) for deploing/orchestrating/scaling containers. It seems like a good idea to put OpenEMR in containers (split out into separate containers like main app, db, apache, php, imagemagick etc). Would also make sense to check in the docker/k8s files into the main repo for others to use locally or in production.

In response to Rod’s “not sure what the scaling issues area” point. I believe ECS/k8s solve this problem. Where I’m still fuzzy is with load balancing and set up of a single MySQL database or intelligently doing so with k8s and its opinions on replication (another issue is the data should probably be separated from the db container(s)… how does that work?).

Anyways, I plan on visiting this topic once the new website is up and the certification test mapping doc is done. Would love to pair up with someone on this at a later time! Seems like a great learning experience as well as useful for developers and consumers that want effortless deployment alike.

-m

sunsetsystems wrote on Sunday, August 14, 2016:

Learning is good. :slight_smile:

For what it’s worth, my understanding from an experienced Docker user it that it gets messy when you have multiple apps that must work together. You can do it, and some do because they have that Docker religion, but in a practical sense life is better with it all in one container.

Not that I know, just spouting what I heard. Will be interested in what you come up with.

Rod
http://www.sunsetsystems.com/

sunsetsystems wrote on Sunday, August 14, 2016:

Oh and for your amusement. :slight_smile:

Rod
http://www.sunsetsystems.com/

matthewvita wrote on Wednesday, August 24, 2016:

LOL. A coworker sent me a version parodying microservice architecture: https://www.youtube.com/watch?v=Q65Q1Mi5Jtw

“Messages are stuck somewhere in the system sir”

xD

-Matthew