This document helps to quickly install the necessary tools to download and run the public docker image for CHT applications.
Run the installation and follow the instructions.
Performance Settings that can be changed: Memory: 4 GiB CPUs: 2
In the location you would like to host your configuration files, create a file titled <project_name>-medic-os-compose.yml with the following contents.
One way to do this is using the
curl command line tool. In this example we’re creating a file called
curl -o test-docs-medic-os-compose.yml https://raw.githubusercontent.com/medic/cht-core/master/docker-compose.yml
Alternately, if you do not have
curl, you can right click this link and choose “Save link as…” and specify the correct location to save.
Export a password for admin user named
Inside the directory that you saved the above <project_name>-medic-os-compose.yml, run:
$ docker-compose -f <project_name>-medic-os-compose.yml up
New CouchDB Administrative Userand
New CouchDB Administrative Passwordin the output terminal. You can retrieve these via running
docker logs medic-osand searching the terminal.
Once containers are setup, please run the following command from your host terminal:
$ docker exec -it medic-os /bin/bash -c "sed -i 's/--install=3.9.0/--complete-install/g' /srv/scripts/horticulturalist/postrun/horticulturalist" $ docker exec -it medic-os /bin/bash -c "/boot/svc-stop medic-core openssh && /boot/svc-stop medic-rdbms && /boot/svc-stop medic-couch2pg"
The first command fixes a postrun script for horticulturalist to prevent unique scenarios of re-install. The second command stops extra services that you will not need.
Open a browser to: https://localhost
You will have to click to through the SSL Security warning. Click Advanced -> Continue to site.
docker stop medic-os && docker stop haproxy
docker rm medic-os && docker rm haproxy
Clean data volume:
docker volume rm medic-data
After following the above three commands, you can re-run
docker-compose up and create a fresh install (no previous data present)
In case you are already running services on HTTP(80) and HTTPS(443), you will have to map new ports to the medic-os container.
Turn down and remove all existing containers that were started:
docker-compose down && docker-compose rm
To find out which service is using a conflicting port: On Linux:
sudo netstat -plnt | grep ':<port>'
On Mac (10.10 and above):
sudo lsof -iTCP -sTCP:LISTEN -n -P | grep ':<port>'
You can either kill the service which is occupying HTTP/HTTPS ports, or run the container with forwarded ports that are free. In your compose file, change the ports under medic-os:
services: medic-os: container_name: medic-os image: medicmobile/medic-os:latest volumes: - medic-data:/srv ports: - 8080:80 - 444:443
docker exec -it medic-os /bin/bash
# list running containers docker ps # list all available docker containers with their status sudo docker ps -a # stop container docker stop <container_id> # start container docker start <container_id> # list all stoped containers docker ps -f "status=exited"
Use this prune command when unable to launch the containers and you’d like to restart from a clean slate. WARNING: This will delete all your unused images, containers, networks and volumes including those not related to CHT.
docker system prune -a --volumes
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.