Files
HaitiHealthBox/docker-compose.local.yml
2023-07-13 16:35:31 +03:00

228 lines
6.1 KiB
YAML

version: "3.8"
services:
###
# reverse proxy
###
nginx:
image: nginx:latest
container_name: nginx
restart: always
ports:
- 80:80
- 443:443
volumes:
- certs-vol:/etc/nginx/certs/
- keys-vol:/etc/nginx/keys/
- ./volume/nginix/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- certs
##
#iSantePlus Server
##
isanteplus:
container_name: isanteplus
hostname: isanteplus
image: ghcr.io/isanteplus/docker-isanteplus-server:v2.3.7
restart: unless-stopped
env_file:
- ./isanteplus.env
volumes:
- /openmrs/data
- ./volume/isanteplus/custom_modules:/custom_modules
# ports:
# - 8081:8080
logging:
driver: "json-file"
options:
max-size: "10m"
isanteplus-mysql:
image: ghcr.io/isanteplus/docker-isanteplus-db:v2.2.1
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --sql_mode=""
restart: unless-stopped
container_name: isanteplus-mysql
hostname: isanteplus-mysql
healthcheck:
test: "exit 0"
environment:
- MYSQL_DATABASE=openmrs
- MYSQL_ROOT_PASSWORD=debezium
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
- MYSQL_ROOT_HOST=% # Allow docker containers to connect to mysql
volumes:
# - ./mysql.cnf:/etc/mysql/conf.d/custom.cnf # mysql config preconfigured to allow binlog/debezium
- /var/lib/mysql
# streaming-pipeline:
# image: ghcr.io/i-tech-uw/openmrs-fhir-analytics/streaming-binlog:latest
# container_name: streaming-pipeline
# healthcheck:
# test: "exit 0"
# volumes:
# - ./configs/streaming-pipeline/config.json:/deployments/config.json
# # data is the directory which you want to persist the generated parquet files
# # - ./configs/streaming-pipeline/parquet:/tmp
# environment:
# - OPENMRS_URL=http://isanteplus:8080/openmrs
# - OPENMRS_USERNAME=admin
# - OPENMRS_PASSWORD=${IPLUS_ADMIN_PW-Admin123}
# - SINK_URL=https://openhim-ssl.sedish-haiti.org/SHR/fhir
# - SINK_USERNAME=${OPENHIM_STREAMING_CLIENT-streaming}
# - SINK_PASSWORD=${OPENHIM_STREAMING_PW-streaming}
# - JDBC_FETCH_SIZE=10000
# - JDBC_MAX_POOL_SIZE=50
# - JDBC_INITIAL_POOL_SIZE=10
# - JDBC_DRIVER_CLASS=com.mysql.cj.jdbc.Driver
# # the 2 variable below should be same as volume mappings above
# - PARQUET_PATH=
# - FHIR_DEBEZIUM_CONFIG_PATH=/deployments/config.json
###
# OpenHIM
###
openhim-core:
container_name: openhim-core
hostname: openhim-core
image: jembi/openhim-core:v7.1.0
restart: unless-stopped
environment:
mongo_url: "mongodb://mongo-db/openhim"
mongo_atnaUrl: "mongodb://mongo-db/openhim"
NODE_ENV: "development"
ports:
# - 5000
# - 5001
- 8080:8080
openhim-console:
container_name: openhim-console
hostname: openhim-console
image: jembi/openhim-console:v1.15.0
restart: unless-stopped
volumes:
- ./volume/openhim/console.json:/usr/share/nginx/html/config/default.json
healthcheck:
test: "curl -sS http://openhim-console || exit 1"
interval: 10s
timeout: 60s
retries: 3
# ports:
# - 3000:80
# Loads Default OpenHIM Config
openhim-config:
container_name: openhim-config
image: ghcr.io/i-tech-uw/openhim-config:v0.0.0
volumes:
- ./volume/openhim/initial-config.json:/app/test-openhim-config.json
mongo-db:
container_name: mongo-db
image: mongo:3.4
volumes:
- /data/db
restart: unless-stopped
####
# OpenELIS
####
certs:
container_name: oe-certs
image: ghcr.io/i-tech-uw/certgen:main
restart: always
environment:
- KEYSTORE_PW="kspass"
- TRUSTSTORE_PW="tspass"
volumes:
- cert-volume:/etc/openelis-global
- keys-vol:/etc/ssl/private/
- certs-vol:/etc/ssl/certs/
database:
container_name: openelisglobal-database
image: postgres:9.5
# ports:
# - "15432:5432"
restart: always
env_file:
- ./volume/database/database.env
volumes:
# preserves the database between containers
- db-data:/var/lib/postgresql/data
# files here will run on install
- ./volume/database/dbInit:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "clinlims", "-U", "clinlims"]
timeout: 45s
interval: 10s
retries: 10
oe.openelis.org:
container_name: openelisglobal-webapp
image: ghcr.io/i-tech-uw/openelis-global-2:2.7.3.2
depends_on:
- database
# ports:
# - "8095:8080"
# - "8443:8443"
restart: always
environment:
- TZ=Africa/Nairobi
# context.xml doesn't seem to be able to pick up environment variables directly, so we are passing them in as CATALINA_OPTS
- CATALINA_OPTS= -Ddatasource.url=jdbc:postgresql://database:5432/clinlims -Ddatasource.username=clinlims -Ddatasource.password=clinlims
volumes:
- cert-volume:/etc/openelis-global
# - openelis-plugins-data:/var/lib/openelis-global/plugins
- ./volume/tomcat/oe_server.xml:/usr/local/tomcat/conf/server.xml
secrets:
- source: datasource.password
- source: common.properties
fhir.openelis.org:
container_name: external-fhir-api
image: hapiproject/hapi:v5.5.1
# ports:
# - "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
fhir.openelis.org.remote:
container_name: openelis-remote-source
image: hapiproject/hapi:v5.5.1
# ports:
# - "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
secrets:
datasource.password:
file: ./volume/properties/datasource.password
common.properties:
file: ./volume/properties/common.properties
volumes:
db-data:
cert-volume:
certs-vol:
keys-vol: