feat: sync-accounts.sh 添加 Docker 镜像版本检测

- 检测远程容器是否支持多账号功能
- 版本过旧时给出更新镜像的具体命令
- 避免配置同步后无法生效的问题
This commit is contained in:
empty
2025-12-27 13:54:22 +08:00
parent 9200e912fd
commit 5bdbc35875

View File

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