From 618ac0bf8cda6c52f1d897294cff2e16352c1b04 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Fri, 26 Sep 2025 07:14:26 -0700 Subject: [PATCH] in1 --- .gitea/workflows/docker.yml | 82 +++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index 17ddc44..042d486 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -380,17 +380,54 @@ jobs: echo "=== 部署管理面板 ===" + # 网络连通性检查 + echo "检查镜像服务器连通性..." + REGISTRY_HOST=$(echo "${{ env.DOCKER_REGISTRY }}" | sed 's|https\?://||' | cut -d'/' -f1) + echo "镜像仓库地址: $REGISTRY_HOST" + + if ping -c 3 "$REGISTRY_HOST" > /dev/null 2>&1; then + echo "✅ 镜像服务器连通性正常" + else + echo "⚠️ 镜像服务器ping失败,但继续尝试拉取镜像" + fi + + # 检查Docker登录状态 + echo "检查Docker登录状态..." + if docker info > /dev/null 2>&1; then + echo "✅ Docker服务正常" + else + echo "❌ Docker服务异常" + exit 1 + fi + # 拉取镜像(带重试) echo "拉取Docker镜像..." for i in {1..3}; do + echo "尝试拉取镜像 ($i/3): ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}" if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}; then - echo "镜像拉取成功" + echo "✅ 镜像拉取成功" break else - echo "镜像拉取失败,重试 $i/3" + echo "❌ 镜像拉取失败,重试 $i/3" + echo "检查网络和镜像仓库状态..." + + # 显示详细错误信息 + echo "--- 网络诊断信息 ---" + echo "DNS解析测试:" + nslookup "$REGISTRY_HOST" || echo "DNS解析失败" + echo "网络连通性测试:" + ping -c 2 "$REGISTRY_HOST" || echo "ping失败" + echo "Docker镜像仓库连接测试:" + curl -I "https://$REGISTRY_HOST/v2/" 2>/dev/null || echo "仓库API访问失败" + sleep 5 if [ $i -eq 3 ]; then echo "❌ 镜像拉取失败,部署终止" + echo "请检查:" + echo "1. 网络连接是否正常" + echo "2. 镜像仓库是否可访问" + echo "3. 镜像标签是否存在" + echo "4. Docker登录凭据是否正确" exit 1 fi fi @@ -462,17 +499,54 @@ jobs: echo "=== 部署用户面板 ===" + # 网络连通性检查 + echo "检查镜像服务器连通性..." + REGISTRY_HOST=$(echo "${{ env.DOCKER_REGISTRY }}" | sed 's|https\?://||' | cut -d'/' -f1) + echo "镜像仓库地址: $REGISTRY_HOST" + + if ping -c 3 "$REGISTRY_HOST" > /dev/null 2>&1; then + echo "✅ 镜像服务器连通性正常" + else + echo "⚠️ 镜像服务器ping失败,但继续尝试拉取镜像" + fi + + # 检查Docker登录状态 + echo "检查Docker登录状态..." + if docker info > /dev/null 2>&1; then + echo "✅ Docker服务正常" + else + echo "❌ Docker服务异常" + exit 1 + fi + # 拉取镜像(带重试) echo "拉取Docker镜像..." for i in {1..3}; do + echo "尝试拉取镜像 ($i/3): ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}" if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}; then - echo "镜像拉取成功" + echo "✅ 镜像拉取成功" break else - echo "镜像拉取失败,重试 $i/3" + echo "❌ 镜像拉取失败,重试 $i/3" + echo "检查网络和镜像仓库状态..." + + # 显示详细错误信息 + echo "--- 网络诊断信息 ---" + echo "DNS解析测试:" + nslookup "$REGISTRY_HOST" || echo "DNS解析失败" + echo "网络连通性测试:" + ping -c 2 "$REGISTRY_HOST" || echo "ping失败" + echo "Docker镜像仓库连接测试:" + curl -I "https://$REGISTRY_HOST/v2/" 2>/dev/null || echo "仓库API访问失败" + sleep 5 if [ $i -eq 3 ]; then echo "❌ 镜像拉取失败,部署终止" + echo "请检查:" + echo "1. 网络连接是否正常" + echo "2. 镜像仓库是否可访问" + echo "3. 镜像标签是否存在" + echo "4. Docker登录凭据是否正确" exit 1 fi fi