From 7d5f4640b37c6fa3e5082c7ae84f2993011167e2 Mon Sep 17 00:00:00 2001 From: ROOG Date: Sun, 22 Mar 2026 18:00:25 +0800 Subject: [PATCH] fix(deploy): align deployment image/pullPolicy with cloud registry and improve rollout diagnostics --- .gitea/workflows/deploy.yml | 22 +++++++++++++--------- k8s/deployment.yaml | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 3e2fd3c..00c2bca 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -72,17 +72,21 @@ jobs: kubectl apply -f k8s/service.yaml kubectl apply -f k8s/ingress.yaml - if kubectl get deployment "${APP_NAME}" -n "${NAMESPACE}" >/dev/null 2>&1; then - echo "🔄 检测到现有 deployment,执行滚动更新..." - kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}" - else - echo "🆕 首次部署,创建 deployment..." - kubectl apply -f k8s/deployment.yaml - kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}" - fi + echo "🧱 应用/更新 deployment..." + kubectl apply -f k8s/deployment.yaml + kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}" + + # 使用 latest 标签时,强制触发一次重启以拉取新镜像 + kubectl rollout restart deployment/${APP_NAME} -n "${NAMESPACE}" echo "⏳ 等待 rollout 完成..." - kubectl rollout status deployment/${APP_NAME} -n "${NAMESPACE}" --timeout=300s + if ! kubectl rollout status deployment/${APP_NAME} -n "${NAMESPACE}" --timeout=300s; then + echo "❌ rollout 超时,输出诊断信息" + kubectl get pods -n "${NAMESPACE}" -l app=${APP_NAME} -o wide || true + kubectl describe deployment/${APP_NAME} -n "${NAMESPACE}" || true + kubectl logs -n "${NAMESPACE}" deploy/${APP_NAME} --all-containers=true --tail=200 || true + exit 1 + fi echo "✅ 部署完成" echo "📌 版本: ${NEW_COMMIT_SHA} - ${NEW_COMMIT_MSG}" diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml index b8348c5..a7a1acb 100644 --- a/k8s/deployment.yaml +++ b/k8s/deployment.yaml @@ -22,8 +22,8 @@ spec: spec: containers: - name: noval - image: noval-app:latest - imagePullPolicy: Never + image: crpi-om2xd9y8cmaizszf.cn-beijing.personal.cr.aliyuncs.com/test-namespace-gu/writing-reddot:latest + imagePullPolicy: Always ports: - containerPort: 8000 name: http