-
-
Save dgalli1/010fb978bae509dda43a1f31145a530f to your computer and use it in GitHub Desktop.
Simple update script for docker compose
This file contains hidden or 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 | |
echo "Now Updating all Docker Containers" | |
export TZ=UTC # force all timestamps to be in UTC (+00:00 / Z) | |
printf -v start_date_epoch '%(%s)T' | |
printf -v start_date_iso8601 '%(%Y-%m-%dT%H:%M:%S+00:00)T' "$start_date_epoch" | |
# List of all folders that contain a docker compose | |
declare -a StringArray=("auth-stack" "bitwarden" "languagetool" "media-stack" "monitoring" "" "mosquitto" "portainer" "dnsmasq" "socks5" "nginx-proxy-manager" "filebrowser") | |
# Iterate the string array using for loop | |
for val in ${StringArray[@]}; do | |
cd /data | |
echo Now Updating "$val" | |
cd $val | |
docker compose pull | |
docker compose up -d | |
done | |
while IFS= read -r -d '' name; do | |
names+=( "$name" ) | |
done < <( | |
docker container ls --format="{{.Names}}" | xargs -n1 docker container inspect | jq -j --arg start_date "$start_date_iso8601" '.[] | select(.State.StartedAt > $start_date) | (.Name, "\u0000")' | |
) | |
echo "now Updating the system" | |
apt update | |
apt upgrade | |
echo "Updated those containers:" | |
for containername in ${names[@]}; do | |
echo "$containername" | |
done | |
if [ -f /var/run/reboot-required ] | |
then | |
echo "[*** Hello $USER, you must reboot your machine ***]" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment