fix(update): 升级时自动补齐旧 secrets.env 缺失的 Spring 密码变量
旧部署的 secrets.env 只有 MYSQL_PASSWORD / REDIS_PASSWORD, 新版 docker-compose.yml 已移除 environment 块中的密码覆盖, 改由 env_file 注入 SPRING_DATASOURCE_PASSWORD 等 Spring 直读变量。 update.sh 升级时自动检测并追加缺失条目,保证幂等且兼容旧部署。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
429077e7eb
当前提交
33ae1b9599
@ -104,6 +104,21 @@ set -a
|
|||||||
. "$ROOT_DIR/config/secrets.env"
|
. "$ROOT_DIR/config/secrets.env"
|
||||||
set +a
|
set +a
|
||||||
|
|
||||||
|
# 迁移:旧版 secrets.env 没有 Spring 直接读取的 env 名,补齐以防 docker compose
|
||||||
|
# 变量替换失败时覆盖成空字符串(deploy.sh 新建部署已自动写入,此处仅升级兼容)
|
||||||
|
_patched=0
|
||||||
|
if ! grep -q "^SPRING_DATASOURCE_PASSWORD=" "$ROOT_DIR/config/secrets.env" 2>/dev/null; then
|
||||||
|
_mp="$(grep '^MYSQL_PASSWORD=' "$ROOT_DIR/config/secrets.env" | cut -d= -f2-)"
|
||||||
|
printf '\nSPRING_DATASOURCE_PASSWORD=%s\n' "$_mp" >> "$ROOT_DIR/config/secrets.env"
|
||||||
|
_patched=1
|
||||||
|
fi
|
||||||
|
if ! grep -q "^SPRING_DATA_REDIS_PASSWORD=" "$ROOT_DIR/config/secrets.env" 2>/dev/null; then
|
||||||
|
_rp="$(grep '^REDIS_PASSWORD=' "$ROOT_DIR/config/secrets.env" | cut -d= -f2-)"
|
||||||
|
printf 'SPRING_DATA_REDIS_PASSWORD=%s\n' "$_rp" >> "$ROOT_DIR/config/secrets.env"
|
||||||
|
_patched=1
|
||||||
|
fi
|
||||||
|
[ "$_patched" -eq 1 ] && ok "secrets.env 已补齐 SPRING_DATASOURCE_PASSWORD / SPRING_DATA_REDIS_PASSWORD"
|
||||||
|
|
||||||
_CONSOLE_DOMAIN="$(grep '^CONSOLE_DOMAIN=' "$ROOT_DIR/config/xuqm.env" 2>/dev/null \
|
_CONSOLE_DOMAIN="$(grep '^CONSOLE_DOMAIN=' "$ROOT_DIR/config/xuqm.env" 2>/dev/null \
|
||||||
| cut -d= -f2- | tr -d '"' | tr -d "'")"
|
| cut -d= -f2- | tr -d '"' | tr -d "'")"
|
||||||
_NGINX_BIND="${NGINX_BIND:-80}"
|
_NGINX_BIND="${NGINX_BIND:-80}"
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户