duoqi-api/docker-compose.prod.yml
Wang Zhuoxuan 23f8c16c54
Some checks failed
CI/CD Pipeline / Code Quality (push) Successful in 16s
CI/CD Pipeline / Unit Tests (push) Successful in 9s
CI/CD Pipeline / Build & Deploy Test (push) Has been skipped
CI/CD Pipeline / Build & Deploy Production (push) Failing after 50s
fix: 使用 host 网络模式避免 Docker bridge 子网与 VPC 内网冲突
Docker Compose 默认创建的 bridge 网络 (172.23.0.0/16) 与阿里云
RDS 内网 IP 段冲突,导致宿主机到 RDS 的流量被截走,Gitea 无法
连接数据库。改用 network_mode: host 彻底解决。
2026-04-18 02:50:10 +08:00

67 lines
1.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ========================================
# 服务器部署配置(单服务器 Phase 1
# 包含生产环境和测试环境(按需启停)
#
# 使用 host 网络模式,避免 Docker bridge 子网与 VPC 内网冲突
#
# 用法:
# 生产环境docker compose up -d
# 含测试: docker compose --profile test up -d
# 停止测试docker compose --profile test stop api-test
# ========================================
services:
# ===== 生产环境 =====
api-prod:
build:
context: .
dockerfile: Dockerfile
image: duoqi-api:prod
container_name: duoqi-api-prod
restart: unless-stopped
network_mode: host
env_file: .env.prod
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
deploy:
resources:
limits:
memory: 400M
# ===== 测试环境Docker profiles 按需启停) =====
api-test:
build:
context: .
dockerfile: Dockerfile
image: duoqi-api:test
container_name: duoqi-api-test
restart: "no"
network_mode: host
env_file: .env.test
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
deploy:
resources:
limits:
memory: 300M
profiles:
- test