Files
kalendartool/compose.yml

68 lines
1.9 KiB
YAML

services:
db:
build:
context: .
dockerfile: Dockerfile.postgres
restart: unless-stopped
environment:
POSTGRES_USER: calendar_admin
POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?Set CALENDAR_ADMIN_PASSWORD in module configuration}
POSTGRES_DB: calendar
CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?Set CALENDAR_DB_PASSWORD in module configuration}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U calendar_admin -d calendar"]
interval: 5s
timeout: 5s
retries: 10
db-backup:
image: prodrigestivill/postgres-backup-local:16-alpine
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
POSTGRES_HOST: db
POSTGRES_DB: calendar
POSTGRES_USER: calendar_admin
POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?Set CALENDAR_ADMIN_PASSWORD in module configuration}
SCHEDULE: "@daily"
BACKUP_KEEP_DAYS: 7
BACKUP_KEEP_WEEKS: 4
BACKUP_KEEP_MONTHS: 3
POSTGRES_EXTRA_OPTS: "-Z6"
TZ: Europe/Berlin
volumes:
- pgbackups:/backups
app:
build:
context: .
args:
HUB_BASE_PATH: /kalendartool
MPM_AUTH_MODE: "true"
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
MPM_AUTH_MODE: "true"
HUB_BASE_PATH: /kalendartool
CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?Set CALENDAR_DB_PASSWORD in module configuration}
ALLOW_OPEN_REGISTRATION: "false"
NODE_ENV: production
expose:
- "41030"
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://127.0.0.1:41030/health', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"]
interval: 10s
timeout: 3s
retries: 10
start_period: 45s
volumes:
pgdata: {}
pgbackups: {}