From 33ae1b95990d68ea1596d11b639c487ace926c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Thu, 21 May 2026 11:30:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(update):=20=E5=8D=87=E7=BA=A7=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=A1=A5=E9=BD=90=E6=97=A7=20secrets.env=20?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E7=9A=84=20Spring=20=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 旧部署的 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 --- scripts/update.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/update.sh b/scripts/update.sh index 7d3d520..8720c71 100755 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -104,6 +104,21 @@ set -a . "$ROOT_DIR/config/secrets.env" 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 \ | cut -d= -f2- | tr -d '"' | tr -d "'")" _NGINX_BIND="${NGINX_BIND:-80}"