小编Ben*_*eer的帖子

在 ECR 中标记多平台图像会创建未标记的清单

我开始使用 docker buildx 来标记多平台映像并将其推送到 ECR。但是,ECR 似乎将标签应用于父清单,并将每个相关清单保留为未加标签。ECR 似乎确实可以防止删除子清单,但它使管理孤立的未标记图像的清理变得复杂。

有没有办法以某种方式标记这些子清单?

例如,考虑一下这个推送:

docker buildx build --platform "linux/amd64,linux/arm64" --tag 1234567890.dkr.ecr.eu-west-1.amazonaws.com/my-service/my-image:1.0 --push  . 
Run Code Online (Sandbox Code Playgroud)

检查图像:

 docker buildx imagetools inspect 1234567890.dkr.ecr.eu-west-1.amazonaws.com/my-service/my-image:1.0
Run Code Online (Sandbox Code Playgroud)

显示:

Name:      1234567890.dkr.ecr.eu-west-1.amazonaws.com/my-service/my-image:1.0
MediaType: application/vnd.docker.distribution.manifest.list.v2+json
Digest:    sha256:4221ad469d6a18abda617a0041fd7c87234ebb1a9f4ee952232a1287de73e12e
       
Manifests: 
    Name:      1234567890.dkr.ecr.eu-west-1.amazonaws.com/my-service/my-image:1.0@sha256:c1b0c04c84b025357052eb513427c8b22606445cbd2840d904613b56fa8283f3
    MediaType: application/vnd.docker.distribution.manifest.v2+json
    Platform:  linux/amd64
         
    Name:      1234567890.dkr.ecr.eu-west-1.amazonaws.com/my-service/my-image:1.0@sha256:828414cad2266836d9025e9a6af58d6bf3e6212e2095993070977909ee8aee4b
    MediaType: application/vnd.docker.distribution.manifest.v2+json
    Platform:  linux/arm64
Run Code Online (Sandbox Code Playgroud)

然而,ECR 将 2 个子图像显示为untagged

amazon-web-services docker amazon-ecr docker-buildkit

12
推荐指数
2
解决办法
5628
查看次数