This page contains tech notes pertaining to OpenELIS dockerization activity.
Note |
---|
draft page created for Mohankumar Thangavel to update. |
List of Action Items
Separate OpenElis Schema and fresh data from dump file
Status colour Green title Done Parameterise Hostname in atomfeed.properties file and hibernate.cfg.xml
Status colour Red title needs analysis Analyse docker registries to store docker images
Status colour Green title DONE
Going forward with existing Bahmni Repo on docker hubRegistry for storing build images
Registry for storing release images
Creating a new repository for Docker compose files
Status colour Blue title NOT A PRIORITY Volume mounting for OpenElis Application Data
Open Questions for Discussion
Are we managing the bahmni docker hub repo ? https://hub.docker.com/u/bahmni
Status colour Green title CLARIFIED OpenElis Fresh Database contains some data? Do we need all those ?
As an implementer, will I alter database using SQL statements ?
Tech Debts:
OpenELIS schema is done partially from Liquibase and partially from SQL Script
Currently there are two dockerfiles for OpenElis Db- One for fresh DB and the other for Demo DB.
Demo data for OpenElis application comes from emr-functional-tests repo.
Flow Diagram:
Docker Repository Analysis
Docker Hub | Github Container Registry (beta) | Amazon ECR | |
---|---|---|---|
Public Repos | Unlimited - Free | Unlimited - Free | $0.10 \GB month |
Private Repos | Free -1 $5/month -unlimited | 500 MB is free | $0.10 \GB month |
Auto Clean Up | Need to do manually or by configuring an external cron job | Need to do manually or by configuring an external cron job | Has built in features |
Pull Rate Limits (May not be a considering factor) | 100 pulls in six hours for anonymous users | Not yet released. May have some when public version is announced. | Data charges are levied based on the total data transfer happened. |
Self Hosting Registry Server is also possible. https://docs.docker.com/registry/deploying/
Preferences :
Use Docker Hub for release images:
Standard docker registry used by most projects
Image naming is just simple (Ex: bahmni/openelis:0.93)
Use Github Container Registry for nightly build images:
As we have the plan of moving to Github Actions, this might be helpful in optimising build time.
Community members who want to test out build versions can explicitly pull and use these images in which case the image name must be replaced as ghcr.io/bahmni/openelis:0.93-121
Although docker hub supports any number of tags that can be stored in a repo, keeping it clean may help implementers to easily pickup right images.