# 生产环境 Docker Compose 配置 # 包含完整的应用服务 version: '3.9' services: # PostgreSQL 数据库 postgres: image: postgres:16-alpine container_name: bat-postgres environment: POSTGRES_DB: bluearchive_toolkit POSTGRES_USER: ${DB_USER:-bat_user} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-bat_user} -d bluearchive_toolkit"] interval: 10s timeout: 5s retries: 5 networks: - bat-network restart: unless-stopped # Redis 缓存 redis: image: redis:7-alpine container_name: bat-redis command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] interval: 10s timeout: 5s retries: 5 networks: - bat-network restart: unless-stopped # API Server (待实现) # api: # build: # context: . # dockerfile: deployments/Dockerfile.api # container_name: bat-api # ports: # - "${API_PORT:-8080}:8080" # environment: # DB_HOST: postgres # DB_PORT: 5432 # DB_NAME: bluearchive_toolkit # DB_USER: ${DB_USER} # DB_PASSWORD: ${DB_PASSWORD} # REDIS_HOST: redis # REDIS_PORT: 6379 # REDIS_PASSWORD: ${REDIS_PASSWORD} # depends_on: # postgres: # condition: service_healthy # redis: # condition: service_healthy # networks: # - bat-network # restart: unless-stopped volumes: postgres_data: driver: local redis_data: driver: local networks: bat-network: driver: bridge