feat(ci): prefer pulling cloud image from compose, fallback to local build
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:
@@ -27,9 +27,7 @@ jobs:
|
|||||||
|
|
||||||
NEW_COMMIT_SHA=$(git rev-parse --short HEAD)
|
NEW_COMMIT_SHA=$(git rev-parse --short HEAD)
|
||||||
NEW_COMMIT_MSG=$(git log -1 --oneline)
|
NEW_COMMIT_MSG=$(git log -1 --oneline)
|
||||||
FULL_IMAGE="${IMAGE_NAME}:${NEW_COMMIT_SHA}"
|
|
||||||
|
|
||||||
echo "🌐 预拉取基础镜像(带重试,避免网络抖动)..."
|
|
||||||
pull_with_retry() {
|
pull_with_retry() {
|
||||||
local image="$1"
|
local image="$1"
|
||||||
local max=5
|
local max=5
|
||||||
@@ -47,18 +45,33 @@ jobs:
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 优先使用 docker-compose.yml 中配置的云端镜像
|
||||||
|
COMPOSE_IMAGE=$(docker compose config --images | head -n 1 || true)
|
||||||
|
|
||||||
|
if [ -n "${COMPOSE_IMAGE}" ]; then
|
||||||
|
echo "☁️ 检测到 compose 镜像: ${COMPOSE_IMAGE},优先从云端拉取"
|
||||||
|
pull_with_retry "${COMPOSE_IMAGE}"
|
||||||
|
FULL_IMAGE="${COMPOSE_IMAGE}"
|
||||||
|
else
|
||||||
|
FULL_IMAGE="${IMAGE_NAME}:${NEW_COMMIT_SHA}"
|
||||||
|
echo "ℹ️ compose 未配置 image,回退本地构建模式"
|
||||||
|
|
||||||
|
echo "🌐 预拉取基础镜像(带重试,避免网络抖动)..."
|
||||||
pull_with_retry node:20-alpine
|
pull_with_retry node:20-alpine
|
||||||
pull_with_retry python:3.12-slim
|
pull_with_retry python:3.12-slim
|
||||||
|
|
||||||
echo "📦 构建镜像 ${FULL_IMAGE}"
|
echo "📦 构建镜像 ${FULL_IMAGE}"
|
||||||
docker build --pull=false -t "${FULL_IMAGE}" .
|
docker build --pull=false -t "${FULL_IMAGE}" .
|
||||||
docker tag "${FULL_IMAGE}" "${IMAGE_NAME}:latest"
|
docker tag "${FULL_IMAGE}" "${IMAGE_NAME}:latest"
|
||||||
|
fi
|
||||||
|
|
||||||
if command -v k3s >/dev/null 2>&1; then
|
if command -v k3s >/dev/null 2>&1; then
|
||||||
echo "📤 导入镜像到 k3s containerd..."
|
echo "📤 导入镜像到 k3s containerd..."
|
||||||
docker save "${FULL_IMAGE}" | k3s ctr images import -
|
docker save "${FULL_IMAGE}" | k3s ctr images import -
|
||||||
|
if docker image inspect "${IMAGE_NAME}:latest" >/dev/null 2>&1; then
|
||||||
docker save "${IMAGE_NAME}:latest" | k3s ctr images import -
|
docker save "${IMAGE_NAME}:latest" | k3s ctr images import -
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "🧱 应用 K8s 基础资源..."
|
echo "🧱 应用 K8s 基础资源..."
|
||||||
kubectl apply -f k8s/namespace.yaml
|
kubectl apply -f k8s/namespace.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user