将图像推送到Amazon ECR时,如果标记已存在于repo中,则旧图像仍保留在注册表中,但处于未标记状态.
所以,如果i docker push image / haha:1.0.0我第二次这样做(假设有些事情发生了变化),第一张图片就会从AWS ECR中取消标记.
最佳答案
您可以在单个请求中删除所有图像,而无需循环:
IMAGES_TO_DELETE=$( aws ecr list-images --region $ECR_REGION --repository-name $ECR_REPO --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output json )
aws ecr batch-delete-image --region $ECR_REGION --repository-name $ECR_REPO --image-ids "$IMAGES_TO_DELETE" || true
[{“imageDigest”:“sha256:…”},{“imageDigest”:“sha256:…”},…]
然后它将该列表发送到批处理图像删除.