使用--platform构建单平台镜像后,如何部署至AWS ECR?
解决方法
要在ECR中只保留单平台arm64镜像、避免生成多架构清单,你可以按以下步骤操作:
确认本地镜像架构
先验证构建的镜像确实是arm64架构:docker inspect foo | grep Architecture输出需显示
"Architecture": "arm64",确保镜像符合要求。获取镜像的唯一哈希(Digest)
查看镜像对应的Digest值,这个哈希对应单平台镜像实体:docker images --digests foo输出里的
DIGEST列就是目标哈希串,格式类似sha256:abcdef1234567890...。重新打标签并推送单平台镜像
将该Digest对应的镜像重新打标签,指向你的ECR仓库地址(替换为实际的ECR账号ID、区域和自定义标签):docker tag sha256:abcdef1234567890 你的ECR账号ID.dkr.ecr.区域.amazonaws.com/foo:arm64随后推送这个专属标签:
docker push 你的ECR账号ID.dkr.ecr.区域.amazonaws.com/foo:arm64清理ECR中旧的多架构清单(可选)
若之前已推送过多架构清单到ECR,先删除旧标签的关联记录:aws ecr batch-delete-image --repository-name foo --image-ids imageTag=latest完成后再推送新的单平台镜像,就能确保ECR中仅存在arm64镜像文件。
内容的提问来源于stack exchange,提问作者yegor256
相关产品推荐
相关产品推荐

