diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1511533..5d134cd 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -29,8 +29,29 @@ jobs: NEW_COMMIT_MSG=$(git log -1 --oneline) FULL_IMAGE="${IMAGE_NAME}:${NEW_COMMIT_SHA}" + echo "🌐 预拉取基础镜像(带重试,避免网络抖动)..." + pull_with_retry() { + local image="$1" + local max=5 + local n=1 + until [ $n -gt $max ]; do + echo "尝试拉取 ${image} (${n}/${max})" + if docker pull "${image}"; then + echo "✅ 拉取成功: ${image}" + return 0 + fi + sleep $((n * 5)) + n=$((n + 1)) + done + echo "❌ 拉取失败: ${image}" + return 1 + } + + pull_with_retry node:20-alpine + pull_with_retry python:3.12-slim + echo "📦 构建镜像 ${FULL_IMAGE}" - docker build -t "${FULL_IMAGE}" . + docker build --pull=false -t "${FULL_IMAGE}" . docker tag "${FULL_IMAGE}" "${IMAGE_NAME}:latest" if command -v k3s >/dev/null 2>&1; then