services: db: image: postgres:16 restart: unless-stopped environment: POSTGRES_DB: school_management POSTGRES_USER: school_admin POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U school_admin -d school_management"] interval: 5s timeout: 5s retries: 10 backend: image: hootongerungit.mcv.kr/sihoo/school-backend:${IMAGE_TAG:-latest} restart: unless-stopped depends_on: db: condition: service_healthy environment: DB_HOST: db DB_NAME: school_management DB_USER: school_admin DB_PASS: ${DB_PASSWORD} TEACHER_SECRET_CODE: ${TEACHER_SECRET_CODE} ADMIN_RESET_PASSWORD: ${ADMIN_RESET_PASSWORD} FIREBASE_KEY_PATH: /run/secrets/firebase-key.json volumes: - ./firebase-key.json:/run/secrets/firebase-key.json:ro caddy: image: caddy:2 restart: unless-stopped ports: - "80:80" - "443:443" environment: DOMAIN: ${DOMAIN} volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config depends_on: - backend volumes: db_data: caddy_data: caddy_config: