diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c6e5c7..1618e9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ 非交互模式必须显式注入只读仓库凭据,托管数据库密码自动随机生成。 - 删除未被入口调用的重复 configure/install/upgrade 实现、占位目录文件和不存在的 docs-site 独立镜像定义;文档站继续由 tenant-web 在 `/docs/` 提供。 +- 修正环境加载优先级:`config/infra.env` 仅作为默认值,部署生成的 `.env` 为 + MySQL/Redis 模式和 profile 的权威来源,避免托管数据库被备份脚本误判为外部数据库。 ## 2026.06.18-private.1 diff --git a/scripts/lib.sh b/scripts/lib.sh index e7e1618..cdd606c 100755 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -41,8 +41,11 @@ fail_json() { load_env() { set -a - [ -f "$ROOT_DIR/.env" ] && . "$ROOT_DIR/.env" + # infra.env 只提供仓库级基础默认值;实际部署生成的 .env 必须后加载并成为 + # MySQL/Redis 模式、主机和 profile 的权威来源。旧顺序会让 managed 部署被误判成 + # external,导致备份在宿主机解析 Docker 服务名失败。 [ -f "$ROOT_DIR/config/infra.env" ] && . "$ROOT_DIR/config/infra.env" + [ -f "$ROOT_DIR/.env" ] && . "$ROOT_DIR/.env" [ -f "$ROOT_DIR/config/xuqm.env" ] && . "$ROOT_DIR/config/xuqm.env" [ -f "$ROOT_DIR/config/secrets.env" ] && . "$ROOT_DIR/config/secrets.env" set +a