推送到 ECR 存储库的图像达到最大数量后会发生什么

What will happen after the maximum number of images pushed to ECR repository

根据 Amazon ECR Service Limits,每个存储库的最大图像数为 1,000。超过此限制后,最旧的图像不会自动删除。它阻止推送到存储库。所以我必须手动清理旧图像。

更新: AWS 推出 ECR Lifecycle Policies。我们现在可以用这个自动清理。

经历过这种确切的情况后,我可以确认在达到限制后,AWS 会阻止您推送这个非常无用的错误消息:

Error pushing to registry: Server error: 403 trying to push <repo>:<label> manifest

您需要自己管理存储库的数量。由于目前没有内置垃圾收集(也没有 'remove oldest')功能,您有几个选择:

  1. 通过控制台删除图像(这么多图像真的很糟糕)
  2. 使用 ecr batch-delete-image 命令编写您自己的与 AWS CLI/SDK 接口的工具
  3. 请求限制每个存储库可以存储的最大数量。我们最近做到了这一点,并且很容易将 1,000 的限制增加到 5,000。

另一种解决方案是定义 ECR 生命周期策略。这是一个操作指南:https://aws.amazon.com/blogs/compute/clean-up-your-container-images-with-amazon-ecr-lifecycle-policies/

截至 2021 年 4 月,我发现回购数量和每个回购图片数量的限制均为 10k