please allow me to introduce myself. My name is Wolf and I am a software developer employed by ThoughtWorks. Having finished a larger piece of work for OpenMRS last year I was looking for the next topic and had a chat with @gsluthra who suggested looking into dockerizing Bahmni.
There are different approaches to running Bahmni and OpenMRS (standalone) on Docker, namely
With this post I would like to start a discussion about which principles and guidelines to follow when dockerizing Bahmni.
As a starting point, please allow me to share a few ideas:
- Provide official docker images for all components that make up Bahmni.
- These docker images are released by the respective community, i.e. OpenMRS folks publish docker images for OpenMRS, OpenELIS do the same for their product.
- The docker images can be built locally to support development and testing.
- Images that are built locally are not intended to be used in production.
- The docker image for a component should support the extension points and configuration of that component, but not go beyond that.
- As an example, it should be possible to add OpenMRS modules to a Bahmni distribution.
- Docker images must not be used for tweaks and fixes, such as adding a table to the OpenMRS database. This should be fully encapsulated by the respective component.
- A docker based Bahmni distribution contains
- A docker-compose and .env file
- A Bahmni distro docker image that contains configuration files only. This image does not contain deployable artefacts of Bahmni components (such as war files).
It would be great to have a chat about this on one of the next PAT calls and agree the next steps.
Thank you, Wolf