# docker-compose.yml (生产环境) version: '3.8' services: caddy: image: caddy:2-alpine ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data gateway: build: ./backend/gateway environment: - ENV=production - POSTGRES_HOST=postgres - REDIS_HOST=redis # ... 其他环境变量 depends_on: - postgres - redis restart: unless-stopped ai-core: build: ./backend/ai-core environment: - ENV=production # ... 其他环境变量 depends_on: - postgres - redis - qdrant restart: unless-stopped postgres: image: pgvector/pgvector:pg16 volumes: - pg_data:/var/lib/postgresql/data - ./backend/data/init.sql:/docker-entrypoint-initdb.d/init.sql environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: cyrene_ai restart: unless-stopped redis: image: redis:7-alpine volumes: - redis_data:/data restart: unless-stopped qdrant: image: qdrant/qdrant:latest volumes: - qdrant_data:/qdrant/storage restart: unless-stopped minio: image: minio/minio:latest command: server /data environment: MINIO_ROOT_USER: ${MINIO_ACCESS_KEY} MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY} volumes: - minio_data:/data restart: unless-stopped volumes: caddy_data: pg_data: redis_data: qdrant_data: minio_data: