我正在尝试使用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
。
在生成多体系结构清单之前,我是否需要以某种方式推送单个图像?推送图像后是否可以继续运行云构建命令?
答案 0 :(得分:0)
事实证明,必须先push
依赖项才能创建清单。添加如下所示的步骤就可以了!
- name: 'gcr.io/cloud-builders/docker'
id: 'push-arm'
args:
- 'push'
- 'gcr.io/$PROJECT_ID/village:arm32v6'
waitFor: ['arm']
我最终记录了最终配置here,以防其他人遇到此问题。