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 个账号"