我正在尝试使用 Amazon ECR 来存储我的图像。
现在,我希望我的 image:tag 能够与不同的操作系统和架构(如 linux/amd64、linux/arm64、windows 等)一起使用。
当我使用 docker 时这很好,但似乎我无法使其与 ECR 一起使用。
Docker 说您可以将其推送到不安全的注册表:
https ://docs.docker.com/engine/reference/commandline/manifest/
失败的命令:
docker buildx build --platform linux/amd64,linux/arm64 -t 5XXXXXXXXXX.dkr.ecr.ap-southeast-2.amazonaws.com/imagename:tag --push .
此命令成功:
docker buildx build --platform linux/arm64 -t 5XXXXXXXXXX.dkr.ecr.ap-southeast-2.amazonaws.com/imagename:tag --push .
多平台镜像可以推送到 Docker Hub。
我想知道我们如何做到这一点。这是我的想法。如果我错了,请纠正我。
我们可以创建自己的清单文件,其中包含已放置在 ECR 存储库中的图像吗?
就像是:
image: image:multi-arch
manifests:
-
image: 5XXXXXXXXXX.dkr.ecr.ap-southeast-2.amazonaws.com/imagename:tag/i1-linuxamd64
platform:
architecture: arm64
os: linux
-
image: 5XXXXXXXXXX.dkr.ecr.ap-southeast-2.amazonaws.com/imagename:tag/i2-intelx86
platform:
architecture: intelx86
os: Windows
现在我们有了一个名为image:multi-arch的新图像。然后我们使用这个图像并期望它根据清单自动获取目标架构。
如果我将此最终图像推送到 ECR,它会工作吗?难道我做错了什么?请随时纠正我。