This repository provides a dockerized openIMIS (all components) as a quick setup for development, testing or demoing.
Please look for the direction on the openIMIS Wiki: https://openimis.atlassian.net/wiki/spaces/OP/pages/963182705/MO1.1+Install+the+modular+openIMIS+using+Docker
The docker-compose currently only contains the openIMIS database, backend, frontend and gateway components. It will be completed as the other components are added to the platform (batch platform,...)
Disclaimer : NOT FOR PRODUCTION USE |
---|
|
In case of troubles, please consult/contact our service desk via our ticketing site.
#Prerequisit
- Windows 10 or Windows server 2016
- Docker installed and in Windows container mode
In case of troubles, please consult/contact our service desk via our ticketing site.
First startup is special since it will create the necessary docker images and containers to run openIMIS.
To build necessary, docker images, docker-compose relies on local docker files.
In order to build these images, you need to clone, next to openimis-dist_dkr/
the following github repository:branch:
- openimis-db_dkr
- openimis-be_py
- openimis-fe_js
- openimis-gateway_dkr
git clone https://github.com/openimis/openimis-dist_dkr.git
git clone https://github.com/openimis/openimis-db_dkr.git
git clone https://github.com/openimis/openimis-be_py.git
git clone https://github.com/openimis/openimis-fe_js.git
git clone https://github.com/openimis/openimis-gateway_dkr.git
From within openimis-dist_dkr/windows
directory:
- create a
.env
file, providing the following variables:
DB_SQL_SCRIPT=<URL pointing to the SQL script>
ACCEPT_EULA=<must put Y but it means you accept Microsoft EULA for the MSSQL database container>
DB_HOST=database
DB_PORT=1433
DB_NAME=<your database name, imis if you use the demo docker 'db' service>
DB_USER=<your database user, sa if you use the demo docker 'db' service >
DB_PASSWORD=<your database password, generate one if you use the demo docker 'db' service>
NEW_OPENIMIS_HOST=<(sub)domain under which the (new) openIMIS will be served (e.g. openimis.domaine) >
LEGACY_OPENIMIS_HOST=frontend
- If you use the demo docker 'db' service:
- choose the SQL script to create/restore the database. Reference models are provided in database_ms_sqlserver github. Example:
- Empty database:
https://github.com/openimis/database_ms_sqlserver/blob/master/Empty%20databases/openIMIS_ONLINE.sql?raw=true
- Demo database:
https://github.com/openimis/database_ms_sqlserver/blob/master/Demo%20database/openIMIS_demo_ONLINE.sql?raw=true
- Empty database:
- build and start the database docker image:
docker-compose up db
- create the imis database into the container:
docker container ls
and spot the line (CONTAINER ID) withopenimis-db
IMAGE namedocker exec <CONTAINER ID> /create_database.bat
- create the imis users
docker exec <CONTAINER ID> /create_user_db.bat
- choose the SQL script to create/restore the database. Reference models are provided in database_ms_sqlserver github. Example:
- build and start rest of the container (and backend) docker image:
docker-compose up
(note: at each start, openIMIS will apply the necessary database migrations to update the database scheme) - register your openIMIS superuser in the gateway:
- list running containers and spot the gateway:
docker container ls
(the gateway should be namedopenimis-gateway
) - connect to the gateway:
docker exec -it <CONTAINER ID> /bin/sh
(sh and not bash) - you should be in /script directory, if not, just
cd /script
) - in the gateway container, register your openIMIS superuser:
./add-user.sh <SUPERUSER_NAME> <SUPER_USER_PASSWORD>
Notes:- same procedure (add-user.sh) must be followed to add external applications accesses
- in
/script
, there are alsoremove-user.sh
andupdate-user.sh
- list running containers and spot the gateway:
From within openimis-dist_dkr/windows
directory:
To stop all docker containers: docker-compose stop
To (re-)start all docker containers: docker-compose start