1

我正在尝试使用 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.

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

4

1 回答 1

0

事实证明,push在创建清单之前,您必须拥有依赖项。添加像下面这样的步骤就可以了!

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

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

于 2019-01-07T06:15:53.033 回答