# ─── 托管 DB/Redis override(阿里云 RDS + Redis 标准版)──────────────────
# 默认(自带 PG/Redis)不受影响;走托管时叠加本 override 即可,应用代码零改动。
#
# 用法(二选一):
#   COMPOSE_MANAGED=1 bash deploy/deploy-prod.sh
#   docker compose -f docker-compose.prod.yml -f docker-compose.managed.yml \
#     --env-file apps/pac-service/.env --env-file apps/pac-web/.env <cmd>
#
# 前提:.env 的 DATABASE_URL / REDIS_URL 指向托管端点
#   gen-env 生成时传 DATABASE_URL='postgresql://user:pwd@<rds-host>:5432/pac?schema=public' \
#                     REDIS_URL='redis://:<pwd>@<redis-host>:6379'  即可(见 deploy/gen-env.sh)。
#
# ⚠️ Redis 用【标准版(单机/主从)】,别用集群版 —— 集群要 hash-tag + 集群客户端 = 改代码。
# ⚠️ RDS 与应用【同 VPC / 同可用区】—— 重算含大量 DB 往返,跨网络延迟会显著拖慢。
services:
  # 自带 PG/Redis 挪到未激活 profile → 本 override 下不启动(托管接管)
  postgres:
    profiles: ["bundled-db-off"]
  redis:
    profiles: ["bundled-db-off"]

  # 迁移容器:去掉对自带 postgres 的依赖,DB 指向托管
  pac-migrate:
    depends_on: !reset null
    environment:
      DATABASE_URL: ${DATABASE_URL:?托管模式需在 .env 设 DATABASE_URL(指向 RDS)}

  # 后端:只依赖迁移完成;DB/Redis 指向托管(覆盖自带内网地址)
  pac-service:
    depends_on: !override
      pac-migrate:
        condition: service_completed_successfully
    environment:
      DATABASE_URL: ${DATABASE_URL:?托管模式需在 .env 设 DATABASE_URL(指向 RDS)}
      REDIS_URL: ${REDIS_URL:?托管模式需在 .env 设 REDIS_URL(指向托管 Redis)}
