Created
November 25, 2020 11:24
-
-
Save vchatela/c3df25cfc1f3a189a6b42bc7db028641 to your computer and use it in GitHub Desktop.
Script to update once a week all docker images before updating containers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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