eSaude Container Infrastructure
Docker containers exist for every part of the eSaude EMR ecosystem. This page describes where to find them, how to set them up and how to make changes.

Before you can use the containers, you must first install Docker Engine and docker-compose in your environment.

Pre-built images are hosted on Bintray, and the Docker- and docker-compose files are hosted on GitHub.

We use Travis CI to validate our container builds when we push new code to the GitHub repos.

eSaude EMR Platform (Retrospective Data Entry)

The eSaude EMR Platform, also known as the retrospective data entry system (RDE) comprises two containers - the tomcat container and the mysql container.

Pre-built images for both of these containers are available in the platform-docker repository on Bintray.

To use the pre-built images, run:

wget https://raw.githubusercontent.com/esaude/esaude-platform-docker/master/docker-compose-prebuilt.yml
docker-compose -f docker-compose-prebuilt.yml pull

Initialize the mysql container by running:

docker-compose -f docker-compose-prebuilt.yml up esaude-platform-mysql

Wait a minute or two for it to finish initializing (it will eventually stop logging to the console), then press ctrl+c to stop it.

Start the platform by running:

docker-compose up

You should be able access the platform at http://DOCKER_HOST:8080/openmrs.

See the README on GitHub for details on how to build the images from scratch.

Modifications

This section is no longer valid. Follow the instruction on the +eSaude EMR Platform Release Process page instead.

To make changes to containers, clone the platform-docker repo on GitHub and make your changes to the tomcat or mysql Dockerfiles or artifacts.

Database Changes

If you need to make a change to the database, you need to do two things:

  1. Publish a new database to Bintray

Start by importing the current latest release of the clean database, make your changes, then export the new clean database (e.g. by using mysqldump). Finally, zip the new clean database and upload it as a new version on Bintray.

  1. Update the RUN command in the Dockerfile

Update the mysql Dockerfile to refer to the latest database version that you just published to Bintray.