scripts/docker-cleanup.sh: conditional img clean

Only run the simple image clean code if docuum is not running. It works
well enough in most cases, but has the drawbacks that it never deletes
"latest" images or images not matching "^osmocom-build", and may delete
images that are still being used (OS#5447). With the other tool, all
images are considered for removal, and the ones that have not been used
the longest time are removed first.

Related: OS#5477, OS#5066, SYS#5827
Change-Id: I1cef0833c096de0fa5acf77156bb5dd362e2ef9c
This commit is contained in:
Oliver Smith 2022-02-11 13:37:23 +01:00
parent b5ebf6ea6b
commit 88521fbc14
1 changed files with 8 additions and 4 deletions

View File

@ -1,10 +1,14 @@
#!/bin/sh -x
# https://osmocom.org/projects/osmocom-servers/wiki/Docker_cache_clean_up
# simple image cleaning code in case docuum isn't running
# delete all but the latest images
IMAGES=`docker image ls | grep \^osmocom-build | grep -v latest | awk -F ' ' '{print $1":"$2}'`
for f in $IMAGES; do
docker image rm $f
done
if [ -z "$(docker ps -q -f name=docuum)" ]; then
IMAGES=`docker image ls | grep \^osmocom-build | grep -v latest | awk -F ' ' '{print $1":"$2}'`
for f in $IMAGES; do
docker image rm $f
done
fi
# delete all containers where we forgot to use --rm with docker run
CONTAINERS="$(docker ps -q -a -f status=exited -f status=created)"