ECR生命周期策略异常

时间:2018-07-17 07:14:15

标签: amazon-web-services docker amazon-ecs docker-image amazon-ecr

在我们的ECR中,我们每天都会推送带有标签16_XXXX的许多图像。某些推送的图像不是该应用程序的稳定版本。如果有稳定版本,我们将使用标签16.XXXX重新标记图像。

我们已经建立了生命周期策略,以使用imageCountMoreThan(500)清除带有16_XXXX标签的图像。 由于存在带有两个标签(即稳定版)的图像(例如16_0715和16.0715),它们也会被清理吗?

我们不想删除图像的所有稳定版本。是否有方法可以重新标记图像并删除旧标记,只是在ECR生命周期策略中除外?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果只有一条规则,则确实会删除您的稳定图像。

但是,您可以在策略中使用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" } } ] }

来源:我为生命周期策略编写了规则评估逻辑:)您也可以检查文档,在此页底部描述了一些有关用户可以利用的系统事实: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.