fix(compose): 补齐自动化与 P0/P2 的环境变量透传,并放宽部署等待窗口

部署 P1a 时发现两个问题:

一、compose 的 environment 是显式列表(不是 env_file),只写进 .env 不会传进
容器。于是 .env 里新加的 AUTOMATION_ENABLED=true 容器查不到,日志照旧打印
「AUTOMATION_ENABLED 未开启,自动化调度器不启动」——调度器根本没起。早先
§15.1 写入的 ORDER_SITE_* 与 OSS_* 也是同样情况,P0/P2 会直接踩到。

补齐 9 个变量的透传:AUTOMATION_ENABLED、ORDER_SITE_DATABASE_URL /
LOOKUP_ENABLED / LOOKUP_TIMEOUT_SECONDS、OSS_ENDPOINT / BUCKET /
ACCESS_KEY_ID / ACCESS_KEY_SECRET / PREFIX,全部带默认值(缺省即关闭或空),
不配置也不会让容器起不来。

二、deploy.sh 只等 15×2=30 秒就判「服务启动超时」,而 mysql 一起重建时应用
就绪约 35 秒,于是部署实际成功却报失败。等待窗口放宽到 40×2=80 秒。

规划附录 C.2 记下这条约定:新增环境变量要同时改 .env(实值)、
docker-compose.yml(透传)、.env.example(留档)三处。
This commit is contained in:
yml2213
2026-10-02 20:12:24 +08:00
parent 7aaaeebe2b
commit f8a4a0baff
3 changed files with 22 additions and 2 deletions
+14
View File
@@ -61,6 +61,20 @@ services:
- MAIL_ROUNDCUBE_URL=${MAIL_ROUNDCUBE_URL:-}
# 生产容器禁止 reload;开发环境由 dev.sh 单独启动 reload。
- UVICORN_RELOAD=false
# 自动化调度(见 docs/自动化与资料收集规划.md §7)。
# 这个开关只决定「是否起调度线程」;各作业还有自己的开关,默认关闭,
# 在 /automation 页面打开。
- AUTOMATION_ENABLED=${AUTOMATION_ENABLED:-false}
# order_site 订单只读库(P0 订单读取适配层用;未配置时适配层整体降级)
- ORDER_SITE_DATABASE_URL=${ORDER_SITE_DATABASE_URL:-}
- ORDER_SITE_LOOKUP_ENABLED=${ORDER_SITE_LOOKUP_ENABLED:-false}
- ORDER_SITE_LOOKUP_TIMEOUT_SECONDS=${ORDER_SITE_LOOKUP_TIMEOUT_SECONDS:-3}
# 用户上传图片的 OSS(P2 资料收集用)
- OSS_ENDPOINT=${OSS_ENDPOINT:-}
- OSS_BUCKET=${OSS_BUCKET:-}
- OSS_ACCESS_KEY_ID=${OSS_ACCESS_KEY_ID:-}
- OSS_ACCESS_KEY_SECRET=${OSS_ACCESS_KEY_SECRET:-}
- OSS_PREFIX=${OSS_PREFIX:-collect}
networks:
- default
- order-site-net