Refactor Docker Compose

- Replaced GUI_HOST with HOST
- Removed NODE_ENV
- Combine init_onco and backend service
- removed node_modules and .svelte-kit volumes
- removed mongodb volumes
- adjusted http_proxy and https_proxy
- adjusted path prefix from oaut2 to oauth2-ovis
- removed network-mode "host" in fhir-transformer service
This commit is contained in:
tm16-medma 2025-04-09 13:43:53 +00:00
parent 86a2b78d8f
commit e3f7f5d32b
1 changed files with 28 additions and 49 deletions

View File

@ -5,20 +5,20 @@ services:
ovis-traefik-forward-auth: ovis-traefik-forward-auth:
image: quay.io/oauth2-proxy/oauth2-proxy:latest image: quay.io/oauth2-proxy/oauth2-proxy:latest
environment: environment:
- http_proxy=${http_proxy} - http_proxy=${http_proxy:-http://forward_proxy:3128}
- https_proxy=${https_proxy} - https_proxy=${https_proxy:-http://forward_proxy:3128}
- OAUTH2_PROXY_PROVIDER=oidc - OAUTH2_PROXY_PROVIDER=oidc
- OAUTH2_PROXY_SKIP_PROVIDER_BUTTON=true - OAUTH2_PROXY_SKIP_PROVIDER_BUTTON=true
- OAUTH2_PROXY_OIDC_ISSUER_URL=${OAUTH_ISSUER_URL} - OAUTH2_PROXY_OIDC_ISSUER_URL=${OAUTH_ISSUER_URL}
- OAUTH2_PROXY_CLIENT_ID=${OAUTH_CLIENT_ID} - OAUTH2_PROXY_CLIENT_ID=${OAUTH_CLIENT_ID}
- OAUTH2_PROXY_CLIENT_SECRET=${OAUTH_CLIENT_SECRET} - OAUTH2_PROXY_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}
- OAUTH2_PROXY_COOKIE_SECRET=${AUTHENTICATION_SECRET} - OAUTH2_PROXY_COOKIE_SECRET=${AUTHENTICATION_SECRET}
- OAUTH2_PROXY_COOKIE_DOMAINS=.${GUI_HOST:-localhost} - OAUTH2_PROXY_COOKIE_DOMAINS=.${HOST:-localhost}
- OAUTH2_PROXY_COOKIE_REFRESH=4m - OAUTH2_PROXY_COOKIE_REFRESH=4m
- OAUTH2_PROXY_COOKIE_EXPIRE=24h - OAUTH2_PROXY_COOKIE_EXPIRE=24h
- OAUTH2_PROXY_HTTP_ADDRESS=:4180 - OAUTH2_PROXY_HTTP_ADDRESS=:4180
- OAUTH2_PROXY_REVERSE_PROXY=true - OAUTH2_PROXY_REVERSE_PROXY=true
- OAUTH2_PROXY_WHITELIST_DOMAINS=.${GUI_HOST:-localhost} - OAUTH2_PROXY_WHITELIST_DOMAINS=.${HOST:-localhost}
- OAUTH2_PROXY_UPSTREAMS=static://202 - OAUTH2_PROXY_UPSTREAMS=static://202
- OAUTH2_PROXY_EMAIL_DOMAINS=* - OAUTH2_PROXY_EMAIL_DOMAINS=*
- OAUTH2_PROXY_ALLOWED_GROUPS=app-ovis - OAUTH2_PROXY_ALLOWED_GROUPS=app-ovis
@ -35,13 +35,12 @@ services:
- "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.address=http://ovis-traefik-forward-auth:4180" - "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.address=http://ovis-traefik-forward-auth:4180"
- "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.authResponseHeaders=Authorization, X-Forwarded-User, X-Auth-Request-User, X-Auth-Request-Email" - "traefik.http.middlewares.ovis-traefik-forward-auth.forwardauth.authResponseHeaders=Authorization, X-Forwarded-User, X-Auth-Request-User, X-Auth-Request-Email"
- "traefik.http.services.ovis-traefik-forward-auth.loadbalancer.server.port=4180" - "traefik.http.services.ovis-traefik-forward-auth.loadbalancer.server.port=4180"
- "traefik.http.routers.oauth2.rule=Host(`${GUI_HOST:-localhost}`) && PathPrefix(`/oauth2/`)" - "traefik.http.routers.oauth2.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/oauth2-ovis/`)"
- "traefik.http.routers.oauth2.tls=true" - "traefik.http.routers.oauth2.tls=true"
fhir-transformer: fhir-transformer:
image: docker.verbis.dkfz.de/ovis/adt-mon-gql-fhir-transformer:latest image: docker.verbis.dkfz.de/ovis/adt-mon-gql-fhir-transformer:latest
restart: on-failure restart: on-failure
network_mode: "host"
environment: environment:
- FHIR_SERVER_URL=${FHIR_SERVER_URL:-http://bridgehead-ccp-blaze:8080/fhir} - FHIR_SERVER_URL=${FHIR_SERVER_URL:-http://bridgehead-ccp-blaze:8080/fhir}
- FHIR_USERNAME=${FHIR_USERNAME} - FHIR_USERNAME=${FHIR_USERNAME}
@ -53,72 +52,54 @@ services:
image: mongo:${MONGO_VER:-latest} image: mongo:${MONGO_VER:-latest}
restart: always restart: always
command: mongod command: mongod
volumes:
- /var/cache/bridgehead/ccp/ovis/mongo/mongo_db:/data/db
- /var/cache/bridgehead/ccp/ovis/mongo/mongo_conf:/data/configdb
- /var/cache/bridgehead/ccp/ovis/mongo/init/init.js:/docker-entrypoint-initdb.d/init.js - /var/cache/bridgehead/ccp/ovis/mongo/init/init.js:/docker-entrypoint-initdb.d/init.js
init_onco:
image: docker.verbis.dkfz.de/ovis/adt-mon-gql-backend:latest
restart: on-failure
working_dir: /app
user: root
entrypoint: >
sh -c "
while [ ! -f /shared/omock.json ]; do
echo 'Waiting for omock.json...'
sleep 5
done;
mkdir -p ./prep &&
cp /shared/omock.json ./prep/omock.json &&
node ./mgDB/prep/preprocessor.mjs;
echo 'Processing complete';"
depends_on:
- mongo
- fhir-transformer
environment:
- APOLLO_PORT=${APOLLO_PORT:-4001}
- CREDOS_PORT=${CREDOS_PORT:-4000}
- MONGO_VER=latest
- DB=${DB:-onc_test}
- ADRESS=${ADRESS:-mongodb://mongo:27017}
volumes:
- /var/cache/bridgehead/ccp/ovis/shared_data:/shared
- /var/cache/bridgehead/ccp/ovis/init_onco/node_modules:/app/node_modules
backend: backend:
image: docker.verbis.dkfz.de/ovis/adt-mon-gql-backend:latest image: docker.verbis.dkfz.de/ovis/adt-mon-gql-backend:latest
restart: always restart: always
user: root
working_dir: /app working_dir: /app
environment: environment:
- APOLLO_PORT=${APOLLO_PORT:-4001} - APOLLO_PORT=${APOLLO_PORT:-4001}
- CREDOS_PORT=${CREDOS_PORT:-4000} - CREDOS_PORT=${CREDOS_PORT:-4000}
- MONGO_VER=latest - MONGO_VER=latest
- NODE_ENV=development
- CORS_ORIGIN=* - CORS_ORIGIN=*
- DB=${DB:-onc_test} - DB=${DB:-onc_test}
- ADRESS=${ADRESS:-mongodb://mongo:27017} - ADRESS=${ADRESS:-mongodb://mongo:27017}
depends_on: depends_on:
- mongo - mongo
- init_onco - fhir-transformer
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:${APOLLO_PORT:-4001}/health"] test: ["CMD", "curl", "-f", "http://localhost:${APOLLO_PORT:-4001}/health"]
interval: 5s interval: 5s
timeout: 3s timeout: 3s
retries: 5 retries: 5
start_period: 10s start_period: 10s
entrypoint: ["node", "--watch", "index.js"] entrypoint: >
sh -c "
# First run the initialization process
while [ ! -f /shared/omock.json ]; do
echo 'Waiting for omock.json...'
sleep 5
done;
mkdir -p ./prep &&
cp /shared/omock.json ./prep/omock.json &&
node ./mgDB/prep/preprocessor.mjs &&
echo 'Processing complete' &&
exec node --watch index.js"
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.ovis-backend.tls=true" - "traefik.http.routers.backend-gql.rule=Host(`${HOST:-localhost}`) && PathPrefix(`/graphql`)"
- "traefik.http.services.ovis-backend.loadbalancer.server.port=4001" - "traefik.http.routers.backend-gql.tls=true"
- "traefik.http.services.backend-gql.loadbalancer.server.port=${APOLLO_PORT:-4001}"
volumes:
- /var/cache/bridgehead/ccp/ovis/shared_data:/shared
frontend: frontend:
image: docker.verbis.dkfz.de/ovis/adt-mon-gql-frontend:latest image: docker.verbis.dkfz.de/ovis/adt-mon-gql-frontend:latest
restart: always restart: always
environment: environment:
- NODE_ENV=development - PUBLIC_GRAPHQL_URL=https://${HOST:-localhost}/graphql
- VITE_GRAPHQL_URL=http://localhost:${APOLLO_PORT:-4001}/graphql
depends_on: depends_on:
backend: backend:
condition: service_healthy condition: service_healthy
@ -126,8 +107,6 @@ services:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.ovis-frontend.tls=true" - "traefik.http.routers.ovis-frontend.tls=true"
- "traefik.http.routers.ovis-frontend.rule=Host(`${GUI_HOST:-localhost}`)" - "traefik.http.routers.ovis-frontend.rule=Host(`${HOST:-localhost}`)"
# - "traefik.http.routers.lens.middlewares=traefik-forward-auth" - "traefik.http.routers.lens.middlewares=traefik-forward-auth"
- "traefik.http.services.ovis-frontend.loadbalancer.server.port=5173" - "traefik.http.services.ovis-frontend.loadbalancer.server.port=5173"
volumes:
- /var/cache/bridgehead/ccp/ovis/frontend/.svelte-kit:/app/.svelte-kit