Skip to content

Instantly share code, notes, and snippets.

@vchatela
Created November 25, 2020 11:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vchatela/c3df25cfc1f3a189a6b42bc7db028641 to your computer and use it in GitHub Desktop.
Save vchatela/c3df25cfc1f3a189a6b42bc7db028641 to your computer and use it in GitHub Desktop.
Script to update once a week all docker images before updating containers
#!/bin/bash
declare -A docker_array
# Customize your own list... hereunder are some of mines
docker_array[linuxserver/radarr]=linuxserver-radarr1
docker_array[linuxserver/jackett]=linuxserver-jackett1
docker_array[linuxserver/sonarr]=linuxserver-sonarr1
docker_array[linuxserver/tautulli]=linuxserver-tautulli1
stop=0
tobestopped_docker_file=/volume1/tools/Docker/tobestopped_docker_file.txt
if [ $# -eq 1 ]; then
stop=1
fi
echo "Stop = $stop"
# Download
for key in "${!docker_array[@]}"; do
# echo "** $key **"
updated_docker="$(docker pull "$key" | tee /dev/stdout)"
if [[ $updated_docker == *"Downloaded newer image for"* ]]; then
echo "Newer version : --$key--"
if [ $stop -eq 1 ]; then
docker stop ${docker_array[$key]} > /dev/null 2>&1
echo " -> Docker stopped.."
# Remove the line because stopped
sed -i "\|$key|d" $tobestopped_docker_file
else
# Remove to make sure line is not duplicated
sed -i "\|$key|d" $tobestopped_docker_file
echo "$key" >> $tobestopped_docker_file
fi
fi
done
sed -i '/^$/d' $tobestopped_docker_file
if [ $stop -eq 1 ]; then
# Loop over remaning dockers to stop
while IFS="" read -r key || [ -n "$key" ]
do
echo "Stopping : --$key--"
docker stop ${docker_array[$key]} > /dev/null 2>&1
echo " -> Docker stopped.."
sed -i "\|$key|d" $tobestopped_docker_file
done < $tobestopped_docker_file
fi
if [ -s "$tobestopped_docker_file" ]; then
echo "Docker that needs to be stopped and restarted :"
cat $tobestopped_docker_file
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment