想要从容器注册表中过滤 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
我制作了一个脚本,用于过滤 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