So you want to deploy some application on our infrastructure?

Turns out I never really made a public announcement of the docker work I’ve been doing lately!

If you need a new application deployed in our infrastructure, the best way is to leverage docker-compose:

You will need to create a docker-compose file, with all the secrets configurable by .env. From there, we’ll encrypt the secrets and we’ll create a fully automated docker host using terraform and ansible (not yet public). You have the option to configure persistent docker volumes which will be kept between container restarts.

There are two ways of deploying new versions of your docker images: asynchronously from dockerhub pushes, or synchronously from Bamboo.

In order to deploy docker-compose changes, I need to run ansible on that host. The default docker host will come with datadog monitoring, firewall, docker, docker compose, nginx with letsencrypt (https).

We’ve been deploying quite a few applications now, allowing our host to be incredibly uniform! And developers can actively collaborate with infra team in order to deploy a new application.

4 Likes

Thanks @cintiadr for the great work, and eventually announcing this! :smile: Do we have it somewhere on the wiki?

Fair point!

https://wiki.openmrs.org/display/ISM/How+to+deploy+a+new+application+to+our+infrastructure

https://wiki.openmrs.org/display/ISM/Infrastructure+overview

I hope there’s good enough :slight_smile:

Yes that is good enough for us to share some of your knowledge! :smile: