想要从容器注册表中过滤 gcp docker 图像摘要

Want to filter gcp docker image digest from container registry

我制作了一个脚本,用于过滤 25 天前的 gcp docker 容器摘要,结果将循环到 gcloud docker 容器删除命令中。它正在运行,但我担心的是,如果最新版本本身早于 25 天,那么我的脚本也会删除它们。我想跳过如果只有最新的,它会跳过删除。

#!/bin/bash 
DIGESTS=$(gcloud container images list-tags ** --format 'value(digest)' --filter="timestamp.datetime < '$(date +"%Y-%m-%d" --date="25 days ago")'")
COUNT=0 
echo "Keeping the latest 2 digest of the service" 
for DIGEST in $DIGESTS 
do 
((COUNT++)) 
if [[ $COUNT -gt 2 ]] ; 
then echo "Going to delete version $DIGEST of the zeus service." 
gcloud container images delete -q ***@sha256:$DIGEST 
else echo "Going to keep version $DIGEST of the name service." 
fi 
done

您可以添加检查容器数量,如果只有一个则退出

#!/bin/bash 
DIGESTS=$(gcloud container images list-tags ** --format 'value(digest)' --filter="timestamp.datetime < '$(date +"%Y-%m-%d" --date="25 days ago")'")
WCOUNT=$(echo $DIGESTS|wc -w)
if [ "$WCOUNT" -eq 1 ]
 then exit
fi
echo "Keeping the latest 2 digest of the service" 
for DIGEST in $DIGESTS 
do 
if [[ $WCOUNT -gt 2 ]] ; 
then echo "Going to delete version $DIGEST of the zeus service." 
gcloud container images delete -q ***@sha256:$DIGEST 
else echo "Going to keep version $DIGEST of the name service." 
fi 
((WCOUNT--)) 
done