# ProostenKrant — Blazor Server stack # Gebruik: docker compose up -d --build # App: http://localhost:8080 name: proostenkrant services: app: build: context: . dockerfile: deploy/Dockerfile container_name: proostenkrant-app ports: - "8080:8080" environment: DB_HOST: mysql DB_NAME: ${DB_NAME:-proostenkrant} DB_USER: ${DB_USER:-proostenkrant} DB_PASSWORD: ${DB_PASSWORD:-proostenkrant} UNIVERSAL_PASSWORD: ${UNIVERSAL_PASSWORD:-ProostenKrant2024!} HOOGTES_BEWAREN: ${HOOGTES_BEWAREN:-0} volumes: # Foto's en afbeeldingen uit de resources-map: profielfoto's # (resources/images/profiles) en artikeluploads (resources/images/articles) - ./resources/images:/app/wwwroot/resources/images # Archief-edities: bestaande PDF's tonen én pas gedrukte kranten # worden hier bewaard (resources/archive) - ./resources/archive:/app/archive # DataProtection-sleutels (versleuteling van login-cookies en # antiforgery-tokens). Zonder dit volume worden alle sessies # ongeldig bij elke herdeploy van de app-container. - app-dataprotection:/root/.aspnet/DataProtection-Keys depends_on: mysql: condition: service_healthy restart: unless-stopped mysql: image: mysql:8.0 container_name: proostenkrant-mysql environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: ${DB_NAME:-proostenkrant} MYSQL_USER: ${DB_USER:-proostenkrant} MYSQL_PASSWORD: ${DB_PASSWORD:-proostenkrant} volumes: - mysql-data:/var/lib/mysql - ./deploy/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro ports: - "3306:3306" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-prootpassword"] interval: 5s timeout: 5s retries: 20 restart: unless-stopped volumes: mysql-data: app-dataprotection: