services: app: build: context: . dockerfile: Dockerfile target: prod restart: unless-stopped ports: - "${PORT}:${PORT}" environment: APP_ENV: ${APP_ENV} PORT: ${PORT} BLUEPRINT_DB_HOST: psql_bp BLUEPRINT_DB_PORT: 5432 BLUEPRINT_DB_DATABASE: ${BLUEPRINT_DB_DATABASE} BLUEPRINT_DB_USERNAME: ${BLUEPRINT_DB_USERNAME} BLUEPRINT_DB_PASSWORD: ${BLUEPRINT_DB_PASSWORD} BLUEPRINT_DB_SCHEMA: ${BLUEPRINT_DB_SCHEMA} EMAIL_FROM: ${EMAIL_FROM} EMAIL_PASSWORD: ${EMAIL_PASSWORD} SMTP_HOST: ${SMTP_HOST} SMTP_PORT: ${SMTP_PORT} APP_URL: ${APP_URL} SESSION_SECRET: ${SESSION_SECRET} GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET} GOOGLE_CALLBACK_URL: ${GOOGLE_CALLBACK_URL} GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID} GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET} GITHUB_CALLBACK_URL: ${GITHUB_CALLBACK_URL} depends_on: psql_bp: condition: service_healthy networks: - blueprint chat-service: build: context: . dockerfile: Dockerfile.chat ports: - "5000:5000" networks: - blueprint webrtc-service: build: context: . dockerfile: Dockerfile.webrtc ports: - "4000:4000" networks: - blueprint psql_bp: image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_DB: ${BLUEPRINT_DB_DATABASE} POSTGRES_USER: ${BLUEPRINT_DB_USERNAME} POSTGRES_PASSWORD: ${BLUEPRINT_DB_PASSWORD} ports: - "${BLUEPRINT_DB_PORT}:5432" volumes: - psql_volume_bp:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "sh -c 'pg_isready -U ${BLUEPRINT_DB_USERNAME} -d ${BLUEPRINT_DB_DATABASE}'"] interval: 5s timeout: 5s retries: 3 start_period: 15s networks: - blueprint seed: build: context: . dockerfile: Dockerfile.seed depends_on: psql_bp: condition: service_healthy networks: - blueprint environment: BLUEPRINT_DB_HOST: psql_bp BLUEPRINT_DB_PORT: 5432 BLUEPRINT_DB_DATABASE: ${BLUEPRINT_DB_DATABASE} BLUEPRINT_DB_USERNAME: ${BLUEPRINT_DB_USERNAME} BLUEPRINT_DB_PASSWORD: ${BLUEPRINT_DB_PASSWORD} BLUEPRINT_DB_SCHEMA: ${BLUEPRINT_DB_SCHEMA} command: ["./seed"] volumes: psql_volume_bp: networks: blueprint: