chore(ci): add retry pulls for base images to avoid transient docker hub timeout
Some checks failed
Deploy Noval to K3s / deploy (push) Has been cancelled
Some checks failed
Deploy Noval to K3s / deploy (push) Has been cancelled
This commit is contained in:
@@ -29,8 +29,29 @@ jobs:
|
|||||||
NEW_COMMIT_MSG=$(git log -1 --oneline)
|
NEW_COMMIT_MSG=$(git log -1 --oneline)
|
||||||
FULL_IMAGE="${IMAGE_NAME}:${NEW_COMMIT_SHA}"
|
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}"
|
echo "📦 构建镜像 ${FULL_IMAGE}"
|
||||||
docker build -t "${FULL_IMAGE}" .
|
docker build --pull=false -t "${FULL_IMAGE}" .
|
||||||
docker tag "${FULL_IMAGE}" "${IMAGE_NAME}:latest"
|
docker tag "${FULL_IMAGE}" "${IMAGE_NAME}:latest"
|
||||||
|
|
||||||
if command -v k3s >/dev/null 2>&1; then
|
if command -v k3s >/dev/null 2>&1; then
|
||||||
|
|||||||
Reference in New Issue
Block a user