需求场景
当前有两个不同架构(如:arm64、amd64)的镜像压缩包,想把他们合并为一个多架构镜像存储到远程镜像仓库。
步骤
- 下载manifest-tool工具,地址:https://github.com/estesp/manifest-tool/releases/tag/v2.1.9 , 找到适合自己操作系统的版本。
- 把两个不同架构的镜像包分别传到远程仓库,可以使用skope或者docker直接传,假设传完后的两个镜像地址为:
- registry.hub.com/tmp/image-name-arm:image-tag
- registry.hub.com/tmp/image-name-amd:image-tag
- 编辑合并描述文件,假设名为:
merge-image.yaml
,文件内容:
image: registry.hub.com/release/mage-name:image-tag
manifests:
- image: registry.hub.com/tmp/image-name-arm:image-tag
platform:
architecture: arm64
os: linux
- image: registry.hub.com/tmp/image-name-amd:image-tag
platform:
architecture: amd64
os: linux
- 执行合并命令
manifest-tool --username ${镜像仓库用户名} --password ${镜像仓库密码} push from-spec ./merge_image.yaml --debug
- 去远程仓库验证结果