# docker compose file for production environment services: backend: build: context: ./backend dockerfile: Dockerfile expose: - "8000:8000" environment: ENVIRONMENT: production POSTGRES_HOST: postgres LOG_LEVEL: warning depends_on: postgres: condition: service_healthy networks: - app-network frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:3000" depends_on: - backend networks: - app-network postgres: image: postgres:17 environment: POSTGRES_USER: ${POSTGRES_USER:-user} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} POSTGRES_DB: ${POSTGRES_DB:-mydb} expose: - "${POSTGRES_PORT:-5432}:${POSTGRES_PORT:-5432}" volumes: - postgres-data:/var/lib/postgresql/data networks: - app-network healthcheck: test: [ "CMD", "pg_isready", "-U", "${POSTGRES_USER:-user}", "-d", "${POSTGRES_DB:-mydb}", ] interval: 30s timeout: 10s retries: 3 start_period: 10s volumes: postgres-data: networks: app-network: driver: bridge