创建多架构清单

Creating Multiarch Manifest

我正在尝试使用 Google Cloud Build 构建多体系结构映像和支持清单,这样我就可以 运行 我的容器在 amd64 和 arm 处理器上运行。我可以成功构建两个图像,但我无法生成必要的多架构清单...获取错误,显示我刚刚生成的图像不存在。

这是失败的阶段:

- name: 'gcr.io/cloud-builders/docker' id: 'manifest' env: - 'DOCKER_CLI_EXPERIMENTAL=enabled' args: - 'manifest' - 'create' - 'gcr.io/$PROJECT_ID/village:$COMMIT_SHA' - 'gcr.io/$PROJECT_ID/village:arm32v6' - 'gcr.io/$PROJECT_ID/village:amd64' waitFor: ['amd64', 'arm']

产生错误:

no such manifest: gcr.io/village/village:arm32v6 Already have image (with digest): gcr.io/cloud-builders/docker

我构建的前一步结果为:Step #1 - "arm": Successfully tagged gcr.io/village/village:arm32v6

在生成多架构清单之前,我是否需要以某种方式推送单个图像?推送镜像后是否可以运行继续运行ning云构建命令?

事实证明,您必须 push 依赖项才能创建清单。添加像下面这样的步骤就成功了!

- name: 'gcr.io/cloud-builders/docker' id: 'push-arm' args: - 'push' - 'gcr.io/$PROJECT_ID/village:arm32v6' waitFor: ['arm']

我最终记录了最终配置 here 以防其他人遇到这个问题。