在我们的 ECR 中,我们每天都会推送许多带有标签 16_XXXX 的图像。一些推送的图像不是应用程序的稳定版本。当有稳定版本时,我们将使用标签 16.XXXX 重新标记图像。
我们已经设置了一个生命周期策略来清理在 imageCountMoreThan (500) 带有 16_XXXX 标记的图像。既然有图片有两个标签(即稳定版)(如16_0715和16.0715),它们也会被清理吗?
我们不想删除所有稳定版本的图像。有没有办法在 ECR 生命周期策略中重新标记图像并删除旧标签?
谢谢!
在我们的 ECR 中,我们每天都会推送许多带有标签 16_XXXX 的图像。一些推送的图像不是应用程序的稳定版本。当有稳定版本时,我们将使用标签 16.XXXX 重新标记图像。
我们已经设置了一个生命周期策略来清理在 imageCountMoreThan (500) 带有 16_XXXX 标记的图像。既然有图片有两个标签(即稳定版)(如16_0715和16.0715),它们也会被清理吗?
我们不想删除所有稳定版本的图像。有没有办法在 ECR 生命周期策略中重新标记图像并删除旧标签?
谢谢!
如果您只有一个规则,它确实会删除您的稳定图像。
但是,您可以通过策略中的 2 条规则来完成此操作。优先级为 10 的规则将确保您的稳定镜像 (16.XXXX) 安全,优先级为 20 的规则将“查看”您的不稳定版本 (16_XXXX) 的标签数量,但永远无法删除稳定镜像,因为它处于更高的优先级。这是一个例子:
{
"rules": [
{
"rulePriority": 10,
"description": "Keep Stable Images",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["16."],
"countType": "imageCountMoreThan",
"countNumber": 9999
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 20,
"description": "Delete Old Unstable Images",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["16_"],
"countType": "imageCountMoreThan",
"countNumber": 500
},
"action": {
"type": "expire"
}
}
]
}
资料来源:我为 Lifecycle Policies 编写了规则评估逻辑 :) 您还可以查看文档,在此页面底部描述了用户可以利用的系统的一些事实:https ://docs.aws.amazon.com /AmazonECR/latest/userguide/LifecyclePolicies.html
An image that matches the tagging requirements of a rule cannot be expired by a rule with a lower priority.