推送更新的 docker 版本时 AWS ECR 层已经存在

AWS ECR layer already exists when pushing a updated docker version

场景: 创建了一个新的 ECR 私人仓库并成功地在其中推送了一个新的 docker。 然后使用那个 docker 图像来托管应用程序。 现在应用程序需要一些更新的 API,因此:

  1. 对代码进行了更改。
  2. 按照 AWS 命令​​将更新后的 docker 图像推送到具有不同版本号的同一存储库中。 此外,在创建 docker 时,我从我的电脑中删除了本地 docker 图像并使用了 --no-cache 标签。

在上传时,我发现除了 1(大小约为 32 mb)之外的所有层的层已经退出,它在 10 秒内被推送。 在 ECR 上,我可以看到图像的新更新版本,其大小与以前的版本相同,但在 5.10 秒内仅推送了大约 32 mb 层。 这是什么意思? 我尝试了整个过程几次,随机有一次它说图层已经存在于除 2 之外的所有图层。这次推送了一个具有适当图像大小(大约 330 mb)的图层。

有人可以解释一下通过正确的图像推送更新 ECR 版本的最佳方法是什么吗?

这不是什么大问题,因为当我们谈论 docker 图像时,它有多个构建层,所以当您在 aws ecr 上推送它时,它会在 ecr 存储库中推送多层图像,而当您正在更新您的更改并构建此图像并在 ecr 中推送新版本的图像它只会推送 docker 图像的更新层,因为其他层已经在您的 ecr 存储库中可用。我希望你明白这一点。