health checks, validation and variable fix.

Signed-off-by: Basil Bruhn <basil.bruhn@psi.ch>
This commit is contained in:
bruhn_b committed 2026-09-18 16:14:14 +02:00
1 parent 3046bec72f
commit 3d646f9bd5
4 files changed
+171 -31

No files matched your search

+48 -31
View File
@@ -129,7 +129,7 @@ services:
container_name: swiss-ecargo
restart: always
environment:
- HOSTED_API_KEY=${ecargo_api_key}
- HOSTED_API_KEY=${ecargo_api_key:?ecargo_api_key is required}
networks:
- backend
@@ -139,26 +139,32 @@ services:
image: quay.io/hedgedoc/hedgedoc:latest
container_name: hedgedoc
environment:
- CMD_DB_URL=postgres://${hedgedoc_user}:${hedgedoc_password}@hedgedoc_db:5432/hedgedoc
- CMD_DB_DIALECT=postgres
- CMD_DB_HOST=hedgedoc_db
- CMD_DB_PORT=5432
- CMD_DB_DATABASE=hedgedoc
- CMD_DB_USERNAME=${hedgedoc_user:?hedgedoc_user is required}
- CMD_DB_PASSWORD=${hedgedoc_password:?hedgedoc_password is required}
- CMD_DOMAIN=hedgedoc.psi.ch
- CMD_URL_ADDPORT=false
- CMD_PROTOCOL_USESSL=true
- CMD_LDAP_URL=ldaps://dc00.d.psi.ch
- CMD_LDAP_BINDDN=${bind_user}
- CMD_LDAP_BINDCREDENTIALS=${bind_password}
- CMD_LDAP_BINDDN=${bind_user:?bind_user is required}
- CMD_LDAP_BINDCREDENTIALS=${bind_password:?bind_password is required}
- CMD_LDAP_SEARCHBASE=OU=users,OU=psi,DC=d,DC=psi,DC=ch
- CMD_LDAP_SEARCHFILTER=(&(objectcategory=person)(objectclass=user)(|(sAMAccountName={{username}})(mail={{username}})))
- CMD_LDAP_USERIDFIELD=sAMAccountName
- CMD_LDAP_PROVIDERNAME="PSI"
- CMD_LDAP_PROVIDERNAME=PSI
- NODE_ENV=production
- CMD_EMAIL=false
- CMD_ALLOW_EMAIL_REGISTER=false
- CMD_SESSION_SECRET=${session_secret}
- CMD_SESSION_SECRET=${session_secret:?session_secret is required}
volumes:
- /opt/webcontent/sf-hedgedoc/uploads:/hedgedoc/public/uploads
restart: always
depends_on:
- hedgedoc_db
hedgedoc_db:
condition: service_healthy
networks:
- backend
- hedgedoc_backend
@@ -168,12 +174,18 @@ services:
image: postgres:13.4-alpine
container_name: hedgedoc_db
environment:
- POSTGRES_USER={{ hedgedoc_user }}
- POSTGRES_PASSWORD={{ hedgedoc_password }}
- POSTGRES_USER=${hedgedoc_user:?hedgedoc_user is required}
- POSTGRES_PASSWORD=${hedgedoc_password:?hedgedoc_password is required}
- POSTGRES_DB=hedgedoc
volumes:
- /opt/webcontent/sf-hedgedoc/data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- hedgedoc_backend
@@ -254,10 +266,10 @@ services:
- DB_HOST=it-strategy-dashboard-db
- DB_PORT=3306
- DB_NAME=itstrategy
- DB_USER=${IT_DASHBOARD_DB_USER}
- DB_PASS=${IT_DASHBOARD_DB_PW}
- JWT_SECRET=${JWT_SECRET}
- ADMIN_PW_HASH=${ADMIN_PW_HASH}
- DB_USER=${IT_DASHBOARD_DB_USER:?IT_DASHBOARD_DB_USER is required}
- DB_PASS=${IT_DASHBOARD_DB_PW:?IT_DASHBOARD_DB_PW is required}
- JWT_SECRET=${JWT_SECRET:?JWT_SECRET is required}
- ADMIN_PW_HASH=${ADMIN_PW_HASH:?ADMIN_PW_HASH is required}
depends_on:
it-strategy-dashboard-db:
condition: service_healthy
@@ -270,10 +282,10 @@ services:
container_name: it-strategy-dashboard-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${IT_DASHBOARD_DB_ROOT_PW}
- MYSQL_ROOT_PASSWORD=${IT_DASHBOARD_DB_ROOT_PW:?IT_DASHBOARD_DB_ROOT_PW is required}
- MYSQL_DATABASE=itstrategy
- MYSQL_USER=${IT_DASHBOARD_DB_USER}
- MYSQL_PASSWORD=${IT_DASHBOARD_DB_PW}
- MYSQL_USER=${IT_DASHBOARD_DB_USER:?IT_DASHBOARD_DB_USER is required}
- MYSQL_PASSWORD=${IT_DASHBOARD_DB_PW:?IT_DASHBOARD_DB_PW is required}
volumes:
- /opt/webcontent/it-strategy-dashboard/mysql/data:/var/lib/mysql
depends_on:
@@ -282,19 +294,17 @@ services:
networks:
- it_strategy_dashboard_backend
healthcheck:
# Authenticate over TCP; do not embed the password in the command arguments.
test:
[
"CMD",
"mariadb-admin",
"ping",
"-h",
"localhost",
"-u${IT_DASHBOARD_DB_USER}",
"-p${IT_DASHBOARD_DB_PW}",
]
interval: 2s
- CMD-SHELL
- >-
MYSQL_PWD="$${MYSQL_PASSWORD}" mariadb --protocol=TCP
-h 127.0.0.1 -u "$${MYSQL_USER}" "$${MYSQL_DATABASE}"
-e 'SELECT 1' >/dev/null
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# Christoph Hug <christoph.hug@psi.ch>, Simon Suter <simon.suter@psi.ch>
# Panda-Maintenance (OpenMaint)
@@ -305,7 +315,7 @@ services:
- /opt/webcontent/panda-maintenance/data:/var/lib/postgresql/data:rw
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${PANDA_MAINTENANCE_DB_PW}
- POSTGRES_PASSWORD=${PANDA_MAINTENANCE_DB_PW:?PANDA_MAINTENANCE_DB_PW is required}
restart: always
mem_limit: 4000m
mem_reservation: 2000m
@@ -330,7 +340,7 @@ services:
- /opt/webcontent/panda-maintenance/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh:ro
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${PANDA_MAINTENANCE_DB_PW}
- POSTGRES_PASSWORD=${PANDA_MAINTENANCE_DB_PW:?PANDA_MAINTENANCE_DB_PW is required}
- POSTGRES_PORT=5432
- POSTGRES_HOST=panda-maintenance-db
- POSTGRES_DB=openmaint
@@ -485,10 +495,16 @@ services:
restart: always
environment:
- POSTGRES_DB=wiki
- POSTGRES_PASSWORD=${TOMCATWIKI_DB_SECRET}
- POSTGRES_PASSWORD=${TOMCATWIKI_DB_SECRET:?TOMCATWIKI_DB_SECRET is required}
- POSTGRES_USER=wiki
volumes:
- /opt/webcontent/tomcatwiki/db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- tomcatwiki_backend
@@ -497,13 +513,14 @@ services:
container_name: tomcatwiki
restart: always
depends_on:
- tomcatwikidb
tomcatwikidb:
condition: service_healthy
environment:
- DB_TYPE=postgres
- DB_HOST=tomcatwikidb
- DB_PORT=5432
- DB_USER=wiki
- DB_PASS=${TOMCATWIKI_DB_SECRET}
- DB_PASS=${TOMCATWIKI_DB_SECRET:?TOMCATWIKI_DB_SECRET is required}
- DB_NAME=wiki
networks:
- tomcatwiki_backend