name: gig-poc-prod services: postgres: image: docker.m.daocloud.io/library/postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-gig_poc} POSTGRES_USER: ${POSTGRES_USER:-gig} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-gig} TZ: Asia/Shanghai volumes: - postgres_prod_data:/var/lib/postgresql/data - ./sql:/docker-entrypoint-initdb.d qdrant: image: docker.m.daocloud.io/qdrant/qdrant:v1.14.1 restart: unless-stopped volumes: - qdrant_prod_data:/qdrant/storage api: build: context: .. dockerfile: apps/api/Dockerfile restart: unless-stopped environment: APP_ENV: production DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-gig}:${POSTGRES_PASSWORD:-gig}@postgres:5432/${POSTGRES_DB:-gig_poc} QDRANT_URL: http://qdrant:6333 LOG_LEVEL: INFO LLM_ENABLED: ${LLM_ENABLED:-false} LLM_BASE_URL: ${LLM_BASE_URL:-} LLM_API_KEY: ${LLM_API_KEY:-} LLM_MODEL: ${LLM_MODEL:-gpt-5.4} depends_on: - postgres - qdrant web: build: context: .. dockerfile: apps/web/Dockerfile restart: unless-stopped depends_on: - api ports: - "${WEB_PORT:-80}:80" volumes: postgres_prod_data: qdrant_prod_data: