创建多架构清单
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 以防其他人遇到这个问题。
我正在尝试使用 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 以防其他人遇到这个问题。