From d88fb2a547ae20a71a4ebb39bfb5ea53889bce36 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 25 May 2026 03:25:53 +0800 Subject: [PATCH] fix: pull G14 base images through CI proxy --- docs/reference/g14-gitops-cicd.md | 2 +- scripts/g14-gitops-render.mjs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/reference/g14-gitops-cicd.md b/docs/reference/g14-gitops-cicd.md index 7f7fbd08..bb93a9af 100644 --- a/docs/reference/g14-gitops-cicd.md +++ b/docs/reference/g14-gitops-cicd.md @@ -18,7 +18,7 @@ G14 是 HWLAB 的旁路 DEV 集群目标。G14 CI/CD 必须只作用于 G14 k3s - 读取 `deploy/deploy.json` 与 `deploy/k8s/*`,生成 Argo CD 可消费的 G14 runtime Kustomize path。 - 默认输出到 `deploy/gitops/g14/`。 - 默认 registry prefix 是 `127.0.0.1:5000/hwlab`,用于 G14 单节点 k3s 的 node-local registry。 -- 默认 CI/CD proxy 是 G14 本机 `http://127.0.0.1:10808` / `socks5h://127.0.0.1:10808`。Tekton CI step、Docker-in-Docker sidecar 和 publish step 都注入 proxy/no_proxy,保证 npm、Playwright Chromium 安装、base image 拉取和 registry push 走 G14 本机代理边界。CI step 固定使用 Node 22 Debian 镜像,避免 Playwright 官方镜像内 Node 版本漂移影响 `node --test`。 +- 默认 CI/CD proxy 是 G14 本机 `http://127.0.0.1:10808` / `socks5h://127.0.0.1:10808`。Tekton CI step、Docker-in-Docker sidecar 和 publish step 都注入 proxy/no_proxy;publish step 必须先在 DIND 内 `docker pull $HWLAB_DEV_BASE_IMAGE`,再进入 DEV base-image preflight、build 和 registry push,保证 npm、Playwright Chromium 安装、base image 拉取和 registry push 走 G14 本机代理边界。CI step 固定使用 Node 22 Debian 镜像,避免 Playwright 官方镜像内 Node 版本漂移影响 `node --test`。 常用命令: diff --git a/scripts/g14-gitops-render.mjs b/scripts/g14-gitops-render.mjs index 71c37480..a7d5e975 100644 --- a/scripts/g14-gitops-render.mjs +++ b/scripts/g14-gitops-render.mjs @@ -334,6 +334,9 @@ export HWLAB_DEV_REGISTRY_K8S_NATIVE=1 if [ -n "$(params.base-image)" ]; then export HWLAB_DEV_BASE_IMAGE="$(params.base-image)"; fi for i in $(seq 1 90); do docker info >/dev/null 2>&1 && break; sleep 2; done docker info >/dev/null +if [ -n "\${HWLAB_DEV_BASE_IMAGE:-}" ]; then + docker pull "$HWLAB_DEV_BASE_IMAGE" +fi cd /workspace/source/repo test "$(git rev-parse HEAD)" = "$(params.revision)" node scripts/dev-artifact-publish.mjs --publish --registry-prefix "$(params.registry-prefix)" --report /workspace/source/dev-artifacts.json --quiet-build --concurrency "$(params.concurrency)" --services "$(params.services)"