场景四:多架构镜像构建
本场景演示用 gvt docker 为后端与前端构建并推送多架构(amd64/arm64)镜像。
前置
- 已初始化含 Docker 的项目(init 时选择 Docker)
- 本地安装 Docker 且可用
docker buildx
注册 Dockerfile
bash
gvt docker add -f docker/backend/Dockerfile
gvt docker add -f docker/frontend/Dockerfile --registry registry.example.com配置写入 .gvt/docker.toml,镜像名由目录自动推导。
构建并推送
bash
# 全部镜像、全部架构
gvt docker --tag v1.0
# 仅 amd64
gvt docker --arch amd64 --tag v1.0
# 仅指定镜像
gvt docker -i backend -i portal
# 仅本地构建不推送
gvt docker -p配置私有仓库
bash
gvt docker add -f docker/backend/Dockerfile \
--registry registry.example.com \
--secondary-registry private.example.com \
--push-secondary
# 构建时同时推送私有仓库
gvt docker --secondary绑定钩子流程
镜像配置 hook 字段后,宿主机构建前先执行该模块完整钩子(含前端打包):
toml
[[docker.images]]
name = "portal"
dockerfile = "docker/frontend/Dockerfile"
hook = "frontend/portal"任一检查失败则中断构建,保证推送的镜像始终通过质量门禁。
构建流程
- 绑定钩子(可选):执行
.gvt/hook/模块完整流程 - 宿主机预编译:交叉编译各目标架构二进制
- 多架构构建:docker buildx 构建镜像
- 推送:推送到配置仓库(
--secondary时同时推送私有仓库)
详见 Docker 构建流程。