QAUP_Management/deploy/docker-compose.prod.yml

91 lines
2.3 KiB
YAML

# 生产环境配置覆盖
services:
qaup-postgres:
# 生产环境不暴露数据库端口
ports: []
# 增强资源配置
deploy:
resources:
limits:
memory: 2G
cpus: '2.0'
reservations:
memory: 1G
cpus: '1.0'
# 生产环境日志配置
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "5"
qaup-redis:
# 生产环境不暴露 Redis 端口
ports: []
# 启用持久化
command: ["redis-server", "--appendonly", "yes", "--maxmemory", "256mb", "--maxmemory-policy", "allkeys-lru"]
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
qaup-app:
# 生产环境不直接暴露应用端口
ports: []
# 生产环境变量
environment:
SPRING_PROFILES_ACTIVE: prod
# 安全配置
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: health,info,metrics
MANAGEMENT_ENDPOINT_HEALTH_SHOW_DETAILS: when_authorized
# 性能配置
JVM_OPTS: -Dname=qaup-admin.jar -Duser.timezone=Asia/Shanghai -server -Xms1g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:+UseStringDeduplication -XX:+OptimizeStringConcat
# 增强资源配置
deploy:
resources:
limits:
memory: 3G
cpus: '2.0'
reservations:
memory: 2G
cpus: '1.5'
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "10"
qaup-nginx:
# 生产环境端口配置
ports:
- "80:80"
- "443:443"
# 生产环境配置
environment:
NGINX_PORT: 80
SERVER_NAME: ${PRODUCTION_DOMAIN:-localhost}
API_PREFIX: /prod-api
BACKEND_HOST: qaup-app
BACKEND_PORT: 8080
MAX_UPLOAD_SIZE: 50M
STATIC_CACHE_TIME: 30d
# SSL 证书挂载(如果需要)
volumes:
- nginx_logs:/var/log/nginx
- nginx_cache:/var/cache/nginx
- ${SSL_CERT_DIR:-./ssl}:/etc/nginx/ssl:ro
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "5"
# 生产环境网络配置
networks:
qaup-network:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16