Files
bridgehead/ccp/modules/ovis-compose.yml
tm16-medma 191f5f24da refactor: align Bridgehead OVIS CCP overlay with upstream runtime contracts
Apply the PR #375 review feedback by removing Bridgehead-specific compose/setup overrides
that duplicated upstream OVIS behavior and by switching to the upstream-built Mongo image
that already contains init logic.
- rename CCP OVIS services to consistent upstream-style names (`ovis-*`) and update internal dependencies
- switch Mongo service image from direct `mongo:latest` + host-mounted init script to `docker.verbis.dkfz.de/ovis/ovis-backend-mongodb:latest`
- remove obsolete Mongo init bind mount (`/docker-entrypoint-initdb.d/init.js`) from compose
- drop redundant runtime overrides from compose (`restart`, `command`, `user`, `working_dir`)
- remove duplicated app-default/preprocessor env overrides (`OVIS_PREPROC_*`, misc backend defaults) and keep deployment wiring only
- fix Mongo connection env usage to `ADDRESS` and point services to `ovis-backend-database-mongodb`
- remove temporary root-compat Traefik redirect shim and keep mounted `/ccp-ovis` routing labels
- remove setup-time generation of Mongo init.js and related cache directory prep from `ccp/modules/ovis-setup.sh`
2026-03-23 11:34:55 +01:00

107 lines
4.2 KiB
YAML

version: "3.7"
services:
ovis-backend-database-mongodb:
image: docker.verbis.dkfz.de/ovis/ovis-backend-mongodb:latest
container_name: bridgehead-ccp-ovis-mongo
ovis-backend-mongodb-data-preprocessing:
image: docker.verbis.dkfz.de/ovis/ovis-backend-preprocessor:latest
container_name: bridgehead-ccp-ovis-preprocessing
environment:
ADDRESS: mongodb://ovis-backend-database-mongodb:27017
HTTP_PROXY: ""
HTTPS_PROXY: ""
NO_PROXY: ""
http_proxy: ""
https_proxy: ""
no_proxy: ""
depends_on:
- ovis-backend-database-mongodb
healthcheck:
test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:9000/health', res => process.exit(res.statusCode===200?0:1)).on('error', () => process.exit(1));\""]
interval: 10s
timeout: 5s
retries: 6
start_period: 5s
ovis-backend-data-import:
image: docker.verbis.dkfz.de/ovis/ovis-backend-data-import-ccp:latest
container_name: bridgehead-ccp-ovis-import
depends_on:
ovis-backend-mongodb-data-preprocessing:
condition: service_healthy
environment:
# CCP mode: FHIR source configuration (ignored by DEMO image)
FHIR_SERVER_URL: http://bridgehead-ccp-blaze:8080/fhir
FHIR_USERNAME: ""
FHIR_PASSWORD: ""
ICD10_FILTER: ""
# Proxy configuration
HTTP_PROXY: ""
HTTPS_PROXY: ""
NO_PROXY: ""
http_proxy: ""
https_proxy: ""
no_proxy: ""
ovis-backend-apollo:
image: docker.verbis.dkfz.de/ovis/ovis-backend-apollo:latest
container_name: bridgehead-ccp-ovis-backend
environment:
ADDRESS: mongodb://ovis-backend-database-mongodb:27017
depends_on:
- ovis-backend-database-mongodb
- ovis-backend-mongodb-data-preprocessing
- ovis-backend-data-import
healthcheck:
test: ["CMD-SHELL", "test -d /app/node_modules/mongodb"]
interval: 10s
timeout: 5s
retries: 5
labels:
- "traefik.enable=true"
- "traefik.http.routers.ovis-backend.rule=PathPrefix(`/graphql`)"
- "traefik.http.routers.ovis-backend.tls=true"
- "traefik.http.routers.ovis-backend.service=ovis-backend"
- "traefik.http.routers.ovis-backend-ccp.rule=PathPrefix(`/ccp-ovis/graphql`)"
- "traefik.http.routers.ovis-backend-ccp.tls=true"
- "traefik.http.middlewares.ovis-backend-ccp-strip.stripprefix.prefixes=/ccp-ovis"
- "traefik.http.routers.ovis-backend-ccp.middlewares=ovis-backend-ccp-strip"
- "traefik.http.routers.ovis-backend-ccp.service=ovis-backend"
- "traefik.http.services.ovis-backend.loadbalancer.server.port=4001"
ovis-frontend:
image: docker.verbis.dkfz.de/ovis/ovis-frontend:latest
container_name: bridgehead-ccp-ovis-frontend
environment:
OVIS_PUBLIC_BASE_PATH: /ccp-ovis
PUBLIC_GRAPHQL_URL: https://${HOST}/ccp-ovis/graphql
PUBLIC_LOGIN_ENABLED: "false"
PUBLIC_OVIS_IMPORT: ccp
HTTP_PROXY: ""
HTTPS_PROXY: ""
NO_PROXY: ""
http_proxy: ""
https_proxy: ""
no_proxy: ""
depends_on:
ovis-backend-apollo:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.ovis-frontend-ccp-slash.tls=true"
- "traefik.http.routers.ovis-frontend-ccp-slash.rule=Path(`/ccp-ovis`)"
- "traefik.http.routers.ovis-frontend-ccp-slash.priority=1000"
- "traefik.http.routers.ovis-frontend-ccp-slash.middlewares=ovis-frontend-ccp-slash-redirect"
- "traefik.http.routers.ovis-frontend-ccp-slash.service=ovis-frontend"
- "traefik.http.middlewares.ovis-frontend-ccp-slash-redirect.redirectregex.regex=^https?://([^/]+)/ccp-ovis$"
- "traefik.http.middlewares.ovis-frontend-ccp-slash-redirect.redirectregex.replacement=https://$${1}/ccp-ovis/"
- "traefik.http.middlewares.ovis-frontend-ccp-slash-redirect.redirectregex.permanent=true"
- "traefik.http.routers.ovis-frontend-ccp.tls=true"
- "traefik.http.routers.ovis-frontend-ccp.rule=PathPrefix(`/ccp-ovis`)"
- "traefik.http.middlewares.ovis-frontend-ccp-strip.stripprefix.prefixes=/ccp-ovis"
- "traefik.http.routers.ovis-frontend-ccp.middlewares=ovis-frontend-ccp-strip"
- "traefik.http.services.ovis-frontend.loadbalancer.server.port=5173"