Files

78 lines
1.8 KiB
YAML

# 生产环境 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