fix(ci): 消除 preflight Set up job docker pull 卡点,改用宿主机 Node 22 + daemon.json mirrors + Dockerfile ARG 双保险
- preflight:删除 container.image: node:22-bookworm-slim,避免 Runner 在 Set up job 阶段独立 docker pull(国内连 Hub 被限速一直卡) - preflight:改用 runs-on 直出 + actions/setup-node@v4 装 Node 22,npm registry 设 npmmirror - build-image:python3 合法合成 /etc/docker/daemon.json 注入 3 组 docker.io registry mirrors(daocloud/1panel/1ms.run),systemctl→service→失败跳过 三级 non-intrusive 重启 docker - Dockerfile:新增全局 ARG DOCKER_MIRROR / NODE_BUILDER_TAG / NODE_RUNTIME_TAG,FROM 统一前缀化;本地开发 DOCKER_MIRROR 为空时等价原写法,体验不变 - buildx BUILD_ARGS:新增 3 个 --build-arg 把 DOCKER_MIRROR_PREFIX / NODE_BUILDER_TAG / NODE_RUNTIME_TAG 传入,CI 拉 node:22-alpine 必走国内源 - 修复后:workflow 触发时 Preflight 日志不会再出现 Starting job container / docker pull image=node:***-bookworm-slim;前面 system-settings defaults 兜底修复可顺利部署上线
This commit is contained in:
+13
-2
@@ -1,9 +1,20 @@
|
||||
# 支持: linux/amd64, linux/arm64, linux/arm/v7
|
||||
|
||||
# ========== 支持在 CI 注入国内镜像源前缀拉 node 基础镜像 ==========
|
||||
# 用法:docker buildx build \
|
||||
# --build-arg DOCKER_MIRROR=docker.m.daocloud.io/library/ \
|
||||
# --build-arg NODE_BUILDER_TAG=22-alpine \
|
||||
# --build-arg NODE_RUNTIME_TAG=22-alpine \
|
||||
# ...
|
||||
# 缺省(DOCKER_MIRROR 为空)等价于原来的 node:22-alpine,本地开发不变
|
||||
ARG DOCKER_MIRROR=""
|
||||
ARG NODE_BUILDER_TAG="22-alpine"
|
||||
ARG NODE_RUNTIME_TAG="22-alpine"
|
||||
|
||||
# ==========================================
|
||||
# 第一阶段:依赖安装与构建阶段
|
||||
# ==========================================
|
||||
FROM node:22-alpine AS builder
|
||||
FROM ${DOCKER_MIRROR}node:${NODE_BUILDER_TAG} AS builder
|
||||
|
||||
WORKDIR /app
|
||||
ENV NODE_OPTIONS="--max-old-space-size=1024"
|
||||
@@ -34,7 +45,7 @@ RUN npm prune --omit=dev
|
||||
# ==========================================
|
||||
# 第二阶段:运行阶段
|
||||
# ==========================================
|
||||
FROM node:22-alpine AS runtime
|
||||
FROM ${DOCKER_MIRROR}node:${NODE_RUNTIME_TAG} AS runtime
|
||||
|
||||
USER root
|
||||
WORKDIR /app
|
||||
|
||||
Reference in New Issue
Block a user