build: make Go image build resilient to registry mirror failures

This commit is contained in:
zn-admin committed 2026-08-14 10:45:08 +08:00
1 parent 550edcdc05
commit c7d2cb212c
5 files changed
+121 -3

No files matched your search

+14 -1
View File
@@ -25,10 +25,23 @@ RDS/服务商凭据,仅共享会话密钥);Go 工作负载 `zhinian-go-api` 独
Node Worker,`worker.yaml` 已弃用保留)。Ingress 按路径分流:页面 → Web,
后端路径 → Go,`/api/internal/worker` → 无端点 deny Service。
Go 镜像构建:
Go 镜像构建(三选一,详见 [`backend/README.md`](./backend/README.md)):
```bash
# 标准多阶段构建
docker build -f backend/Dockerfile -t REGISTRY/PROJECT/zhinian-go-api:TAG backend/
# 镜像加速器无法拉取 golang 镜像时,用 --build-arg 换源
docker build -f backend/Dockerfile \
--build-arg GOLANG_IMAGE=<可用镜像源>/golang:1.21-alpine \
--build-arg RUNTIME_IMAGE=<可用镜像源>/alpine:3.20 \
-t REGISTRY/PROJECT/zhinian-go-api:TAG backend/
# 完全绕开 golang 镜像:先在任意有 Go 1.21 的机器编译静态二进制,再只基于 alpine 组装
cd backend
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -trimpath -ldflags="-s -w" -o zhinian-api.linux ./cmd/zhinian-api
docker build -f backend/Dockerfile.runtime -t REGISTRY/PROJECT/zhinian-go-api:TAG backend/
```
Go 首次启动时从 `zhinian-go-bootstrap` Secret 读取