Update dockcheck.sh to include stopped containers

as suggested in reddit, this is proposed to include stopped containers
take into account im not skilled in this programming language but i wanted to contribute.
This commit is contained in:
elchanly 2023-08-21 23:56:03 +02:00 committed by GitHub
parent 9a246b52c4
commit f91ca08d54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,16 +25,18 @@ Help() {
echo "-n No updates, only checking availability."
echo "-e Exclude containers, separated by comma."
echo "-p Auto-Prune dangling images after update."
echo "-r Allow updating images for docker run, wont update the container"
echo "-s Check stopped containers"
echo "-r Allow updating images for docker run, wont update the container"
}
while getopts "aynprhe:" options; do
while getopts "aynprhse:" options; do
case "${options}" in
a|y) UpdYes="yes" ;;
n) UpdYes="no" ;;
r) DrUp="yes" ;;
p) PruneQ="yes" ;;
e) Exclude=${OPTARG} ;;
s) Stopped="yes" ;;
h|*) Help ; exit 0 ;;
esac
done
@ -161,9 +163,18 @@ if [[ -n ${Excludes[*]} ]] ; then
printf "\n"
fi
if [ "$Stopped" == "yes" ]; then
Cadena="$(docker ps -a --filter "name=$SearchName" --format '{{.Names}}')";
else
Cadena="$(docker ps --filter "name=$SearchName" --format '{{.Names}}')";
fi
### Check the image-hash of every running container VS the registry
for i in $(docker ps --filter "name=$SearchName" --format '{{.Names}}') ; do
### Looping every item over the list of excluded names and skipping:
for i in ${Cadena} ; do
### Looping every item over the list of excluded names and skipping:
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
printf ". "
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
@ -176,6 +187,10 @@ for i in $(docker ps --filter "name=$SearchName" --format '{{.Names}}') ; do
fi
done
### Sort arrays alphabetically
IFS=$'\n'
NoUpdates=($(sort <<<"${NoUpdates[*]}"))