Files
my-app/docker/docker-compose-dev.yml
2025-11-04 19:20:32 +01:00

202 lines
7.3 KiB
YAML

networks:
hps-proxy-network:
driver: bridge
external: false
volumes:
auth_api_data:
acc_api_data:
lab_api_data:
dash_api_data:
audit_api_data:
services:
keycloak_api:
image: quay.io/keycloak/keycloak:26.2.5
container_name: keycloak
ports:
- "127.0.0.1:8080:8080"
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_DB: mariadb
KC_DB_URL_HOST: dev-keycloak.healthprosuite.com #host.docker.internal
KC_DB_URL_PORT: 3306
KC_DB_URL_DATABASE: keycloak
KC_DB_USERNAME: keycloakdevuser
KC_DB_PASSWORD: keycloakdevuser
KC_HEALTH_ENABLED: true
KC_METRICS_ENABLED: true
KC_HTTP_ENABLED: true
KC_HOSTNAME: https://dev-keycloak.healthprosuite.com #host.docker.internal
KC_HOSTNAME_STRICT: false
KC_HOSTNAME_STRICT_HTTPS: true #Only for local dev
KC_PROXY: edge
command: start-dev
#command: start --optimized #production mode
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq
hostname: "${RABBITMQ_HOST}"
restart: always
ports:
- "127.0.0.1:5672:5672" # RabbitMQ communication port
- "127.0.0.1:15672:15672" # RabbitMQ Management UI
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: securepassword
RABBITMQ_NODENAME: rabbit@localhost
RABBITMQ_PORT: 5672
RABBITMQ_VHOST: /
networks:
- hps-proxy-network
volumes:
- ../rabbitmq_data:/var/lib/rabbitmq
auth_api:
#container_name: auth_backend
image: healthprosuite/services:auth-backend-1.0.0
ports:
- "127.0.0.1:5021:5021"
restart: always
env_file: .env
environment:
SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}"
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_AUTH}"
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_AUTH}"
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_AUTH}"
SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}"
AUTHSERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}"
SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}"
SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}"
SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}"
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_ID: oic-dashboard-oauth2-client-credentials
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_SECRET: VrWiz6aQoyPWwzcdBoNj4CR26ZJqPS4m
AUTHSERVICE_KEYCLOAK_HOST: https://dev-keycloak.healthprosuite.com #http://host.docker.internal:8080
volumes:
- auth_api_data:/app
- ~/development/healthprosuite/hospitals:/hospitals/logo
networks:
- hps-proxy-network
depends_on:
- rabbitmq
- keycloak_api
acc_api:
container_name: acc_backend
image: healthprosuite/services:acc-backend-${APP_VERSION}
ports:
- "127.0.0.1:5022:5022"
restart: always
env_file: .env
environment:
SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}"
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_ACC}"
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_ACC}"
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_ACC}"
SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}"
SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}"
SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}"
SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}"
ACCOUNTING_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}"
volumes:
- acc_api_data:/app
- ~/hospitals:/hospitals
networks:
- hps-proxy-network
depends_on:
- rabbitmq
- auth_api
lab_api:
container_name: lab_backend
image: healthprosuite/services:lab-backend-${APP_VERSION}
ports:
- "127.0.0.1:5023:5023"
restart: always
env_file: .env
environment:
SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}"
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_LAB}"
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_LAB}"
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_LAB}"
SPRING_DATASOURCE_DRIVERCLASSNAME: "${SPRING_DATASOURCE_DRIVERCLASSNAME}"
SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}"
SPRING_RABBITMQ_USERNAME: "${SPRING_RABBITMQ_USERNAME}"
SPRING_RABBITMQ_PASSWORD: "${SPRING_RABBITMQ_PASSWORD}"
LAB_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}"
volumes:
- lab_api_data:/app
- ~/development/healthprosuite/laboratory:/laboratory
networks:
- hps-proxy-network
depends_on:
- rabbitmq
- auth_api
- acc_api
audit_api:
container_name: audit_backend
image: healthprosuite/services:audit-backend-${APP_VERSION}
ports:
- "127.0.0.1:5025:5025"
restart: always
env_file: .env
environment:
SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}"
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_AUDIT}"
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_AUDIT}"
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_AUDIT}"
SPRING_RABBITMQ_HOST: "${SPRING_RABBITMQ_HOST}"
AUDIT_SERVICE_JWT_SECRET: "${AUTHSERVICE_JWT_SECRET}"
volumes:
- audit_api_data:/app
networks:
- hps-proxy-network
depends_on:
- rabbitmq
- auth_api
- lab_api
- acc_api
dash_api:
container_name: dash_backend
image: healthprosuite/services:dash-backend-${APP_VERSION}
#profiles:
#- skipme
ports:
- "127.0.0.1:2020:2020"
restart: always
env_file: .env
environment:
SPRING_PROFILES_ACTIVE: "${SPRING_PROFILES_ACTIVE}"
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL_DASH}"
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME_DASH}"
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD_DASH}"
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_ID: oic-dashboard-oauth2-client-credentials
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KEYCLOAK_CLIENT_SECRET: VrWiz6aQoyPWwzcdBoNj4CR26ZJqPS4m
SPRING_SECURITY_OAUTH2_RESOURCE_SERVER_JWT_JWT_SET_URI: https://dev-keycloak.healthprosuite.com
SPRING_KEYCLOAK_HOST: https://dev-keycloak.healthprosuite.com #http://127.0.0.1:8080 #http://host.docker.internal:8080
APPLICATION_WEB_CLIENT_HOST: https://dev-auth-service.healthprosuite.com/auth/v1 #http://host.docker.internal:5021/auth/v1
APPLICATION_KEYCLOAK_SERVER_URL: https://dev-keycloak.healthprosuite.com #http://127.0.0.1:8080 #http://host.docker.internal:8080
APPLICATION_KEYCLOAK_REALM: Dashboard-HPS-Realm
volumes:
- dash_api_data:/app
networks:
- hps-proxy-network
depends_on:
- auth_api
- acc_api
- keycloak_api
icd-api:
container_name: icd-api
image: whoicd/icd-api
ports:
- "0.0.0.0:8000:80"
environment:
- acceptLicense=true # Required parameter to agree with license
- saveAnalytics=${SAVE_ANALYTICS:-true} # Optional: set to true to send analytics to WHO
- include=${INCLUDE:-2024-01_en} # Optional: set the language or release version (e.g., 2024-01_en, 2024-01_es for Spanish)