- Dockerfile: pdo_pgsql installieren - migrations: Postgres-Dialekt (SERIAL, TIMESTAMP(0), TEXT) - compose/.env(.dist): postgresql://DATABASE_URL (Passwort via .env.local) - bin/migrate-sqlite-to-pg.sh: einmaliger Datenimport SQLite->PG
42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
services:
|
|
app:
|
|
build: .
|
|
container_name: svc-essensplanung
|
|
restart: unless-stopped
|
|
env_file:
|
|
# Secrets + Prod-Redirect-URI: APP_SECRET, API_TOKEN, KEYCLOAK_REDIRECT_URI
|
|
- .env.local
|
|
environment:
|
|
APP_ENV: prod
|
|
APP_DEBUG: '0'
|
|
DEFAULT_URI: https://essen.ljh31.de
|
|
KEYCLOAK_ISSUER: https://iam.ljh31.de/realms/family
|
|
KEYCLOAK_CLIENT_ID: essen
|
|
volumes:
|
|
- essens_data:/data
|
|
- essens_var:/app/var
|
|
healthcheck:
|
|
test: ['CMD', 'php', '-r', '$$c=@fsockopen("127.0.0.1",8787); exit($$c?0:1);']
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
networks:
|
|
- infra-traefik_traefik-net
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.essens.rule=Host(`essen.ljh31.de`)"
|
|
- "traefik.http.routers.essens.entrypoints=websecure"
|
|
- "traefik.http.routers.essens.middlewares=lan-only@file"
|
|
- "traefik.http.routers.essens.tls=true"
|
|
- "traefik.http.routers.essens.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.essens.loadbalancer.server.port=8787"
|
|
|
|
volumes:
|
|
essens_data:
|
|
essens_var:
|
|
|
|
networks:
|
|
infra-traefik_traefik-net:
|
|
external: true
|