services: video-games-db: image: postgres:16-alpine container_name: video-games-db restart: unless-stopped environment: - POSTGRES_DB=${VG_DB_NAME:-video_games} - POSTGRES_USER=${VG_DB_USER:-video_games_user} - POSTGRES_PASSWORD=${VG_DB_PASSWORD:-change_me} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${VG_DB_USER:-video_games_user} -d ${VG_DB_NAME:-video_games}"] interval: 5s timeout: 3s retries: 20 volumes: - video_games_data:/var/lib/postgresql/data video-games-api: build: context: . dockerfile: api/Dockerfile container_name: video-games-api restart: unless-stopped depends_on: video-games-db: condition: service_healthy environment: - SERVICE_NAME=video-games-api - API_INTERNAL_PORT=3001 - DATABASE_URL=postgres://${VG_DB_USER:-video_games_user}:${VG_DB_PASSWORD:-change_me}@video-games-db:5432/${VG_DB_NAME:-video_games} ports: - "${API_PORT:-7002}:3001" video-games-app: build: . container_name: video-games-app restart: unless-stopped depends_on: - video-games-api environment: - APP_BASIC_AUTH_USER=${APP_BASIC_AUTH_USER:-beuz} - APP_BASIC_AUTH_PASSWORD=${APP_BASIC_AUTH_PASSWORD:-change_me_now} ports: - "${APP_PORT:-7001}:80" volumes: video_games_data: