From 5bdbc35875efe5ea1cadc3bbe235f977951510b1 Mon Sep 17 00:00:00 2001 From: empty Date: Sat, 27 Dec 2025 13:54:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20sync-accounts.sh=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20Docker=20=E9=95=9C=E5=83=8F=E7=89=88=E6=9C=AC=E6=A3=80?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 检测远程容器是否支持多账号功能 - 版本过旧时给出更新镜像的具体命令 - 避免配置同步后无法生效的问题 --- sync-accounts.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/sync-accounts.sh b/sync-accounts.sh index 1f77ae6..58fbd95 100755 --- a/sync-accounts.sh +++ b/sync-accounts.sh @@ -105,6 +105,41 @@ else REMOTE_COUNT=0 fi +# Step 1.5: 检测 Docker 镜像版本(仅 docker-compose 模式) +if [[ "$DEPLOY_TYPE" == "docker-compose" ]]; then + log_info "正在检测远程镜像版本..." + + # 检查远程 auth.js 是否包含多账号检测逻辑 + MULTI_ACCOUNT_SUPPORT=$(ssh "$SERVER" "docker exec $DOCKER_SERVICE_NAME cat /app/auth.js 2>/dev/null | grep -c 'accounts.json' || echo 0" 2>/dev/null || echo "error") + + if [[ "$MULTI_ACCOUNT_SUPPORT" == "error" || "$MULTI_ACCOUNT_SUPPORT" == "" ]]; then + log_warn "无法检测镜像版本(容器可能未运行)" + elif [[ "$MULTI_ACCOUNT_SUPPORT" == "0" ]]; then + echo "" + echo "══════════════════════════════════════════════════════════════" + log_error "⚠️ 远程镜像版本过旧,不支持多账号功能!" + echo "══════════════════════════════════════════════════════════════" + echo "" + log_info "请在服务器上执行以下命令更新镜像:" + echo "" + echo " cd $REMOTE_PATH" + echo " git pull origin main" + echo " docker compose build --no-cache" + echo " docker compose up -d" + echo "" + log_info "更新完成后,重新运行本脚本同步配置。" + echo "" + read -p "是否继续同步配置?(不推荐) (y/N) " -n 1 -r + echo "" + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + log_warn "已取消同步" + exit 0 + fi + else + log_success "远程镜像支持多账号功能" + fi +fi + # Step 2: 显示本地账号数量 LOCAL_COUNT=$(jq '.accounts | length' "$LOCAL_FILE") log_info "本地现有 $LOCAL_COUNT 个账号"