services: postgres: image: postgres:16-alpine container_name: dance-lessons-coach-postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: dance_lessons_coach ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 networks: - dance-lessons-coach-network restart: unless-stopped # Mailpit — local SMTP capture for dev + BDD parallel email tests. # Cf. ADR-0029 (email infrastructure) and ADR-0030 (BDD parallel strategy). # SMTP submission on :1025 (used by the app), HTTP UI + API on :8025 # (used by tests + manual inspection at http://localhost:8025). mailpit: image: axllent/mailpit:latest container_name: dance-lessons-coach-mailpit ports: - "1025:1025" # SMTP submission - "8025:8025" # HTTP UI / API environment: MP_MAX_MESSAGES: 5000 MP_SMTP_AUTH_ALLOW_INSECURE: 1 # local dev only - no TLS, no real auth networks: - dance-lessons-coach-network restart: unless-stopped # Application service (for reference) # app: # build: . # container_name: dance-lessons-coach-app # ports: # - "8080:8080" # environment: # - DLC_DATABASE_HOST=postgres # - DLC_DATABASE_PORT=5432 # - DLC_DATABASE_USER=postgres # - DLC_DATABASE_PASSWORD=postgres # - DLC_DATABASE_NAME=dance_lessons_coach # - DLC_DATABASE_SSL_MODE=disable # depends_on: # postgres: # condition: service_healthy # restart: unless-stopped volumes: postgres_data: driver: local networks: dance-lessons-coach-network: name: dance-lessons-coach-network driver: bridge