CI:buildx 回到 docker-container 驱动并通过 buildkitd 配置注入国内 mirror;Dockerfile 支持 NPM_REGISTRY 参数(CI 走 npmmirror)
This commit is contained in:
@@ -105,15 +105,20 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
TAGS: ${{ steps.meta.outputs.tags }}
|
TAGS: ${{ steps.meta.outputs.tags }}
|
||||||
run: |
|
run: |
|
||||||
|
# docker-container 驱动才支持多平台;mirror 注入 buildkitd 配置
|
||||||
|
# (docker-container 是独立 BuildKit,不读 daemon.json)
|
||||||
|
printf '[registry."docker.io"]\nmirrors = ["docker.m.daocloud.io", "docker.1ms.run"]\n' \
|
||||||
|
> /tmp/buildkitd.toml
|
||||||
|
docker buildx create --name ci --driver docker-container \
|
||||||
|
--buildkitd-config-file /tmp/buildkitd.toml >/dev/null 2>&1 || true
|
||||||
|
docker buildx use ci
|
||||||
ARGS=""
|
ARGS=""
|
||||||
for t in $TAGS; do ARGS="$ARGS -t $t"; done
|
for t in $TAGS; do ARGS="$ARGS -t $t"; done
|
||||||
# 用 dind 内置 default builder:走 dockerd 的 registry mirror(docker-container
|
|
||||||
# 驱动是独立 BuildKit,不继承 daemon.json 的 mirrors)
|
|
||||||
# provenance/sbom 必须关:阿里云 ACR 不识别 OCI empty manifest(attestation)
|
# provenance/sbom 必须关:阿里云 ACR 不识别 OCI empty manifest(attestation)
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--builder default \
|
|
||||||
--platform linux/amd64,linux/arm64 \
|
--platform linux/amd64,linux/arm64 \
|
||||||
--provenance=false --sbom=false \
|
--provenance=false --sbom=false \
|
||||||
|
--build-arg NPM_REGISTRY=https://registry.npmmirror.com \
|
||||||
--push \
|
--push \
|
||||||
-f deploy/Dockerfile \
|
-f deploy/Dockerfile \
|
||||||
$ARGS \
|
$ARGS \
|
||||||
|
|||||||
@@ -2,8 +2,12 @@
|
|||||||
# 1) node:20-alpine 构建 Vue 前端产物(web/dist)
|
# 1) node:20-alpine 构建 Vue 前端产物(web/dist)
|
||||||
# 2) golang:1.27.1-alpine 编译 server(go:embed 前端产物,缓存指向 /tmp 避免写权限问题)
|
# 2) golang:1.27.1-alpine 编译 server(go:embed 前端产物,缓存指向 /tmp 避免写权限问题)
|
||||||
# 3) 最小运行时镜像:server 二进制 + web/dist 静态产物
|
# 3) 最小运行时镜像:server 二进制 + web/dist 静态产物
|
||||||
|
# NPM_REGISTRY:CI/受限网络下注入 npm 镜像源(默认官方源)
|
||||||
|
ARG NPM_REGISTRY=https://registry.npmjs.org
|
||||||
FROM node:20-alpine AS frontend
|
FROM node:20-alpine AS frontend
|
||||||
|
ARG NPM_REGISTRY
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
RUN npm config set registry "$NPM_REGISTRY"
|
||||||
COPY web/package.json web/package-lock.json* ./
|
COPY web/package.json web/package-lock.json* ./
|
||||||
RUN npm ci || npm install
|
RUN npm ci || npm install
|
||||||
COPY web/ ./
|
COPY web/ ./
|
||||||
|
|||||||
Reference in New Issue
Block a user