Docker-Compose-Updates

Automatisches Update aller Docker, die mit Compose erstellt wurden:

Wie aktualisiert man jetzt die Docker? Ich verwende dafür ein kleines Script. Aber bedenkt, dass ALLE Docker, von denen sich in Dockervolumes die Scripte befinden, geupdated und gestartet werden, auch wenn diese nicht relevant sind. Soll heissen, dass die Compose-Files von Dockern, die keine Verwendung mehr haben oder momentan nicht benötigt werden, nicht im Verzeichnis /home/dockervolumes sein sollten.

Im Terminal:

cd /usr/local/bin && sudo nano mydockerupdatescript

Folgendes, ohne Änderung, eintragen:

#!/bin/bash
# Automatisches Update ALLER Docker in /home/dockervolumes/*
# Ablageverzeichnis: /usr/local/bin/mydockerupdatescript
# Angabe Hauptverzeichnis
   
# Datenbank stoppen (wird nicht benötigt, da keine interne Datenbanken vorhanden)
##cd /home/dockervolumes/mariadb
##sudo docker-compose stop
# Datenbank gestoppt (wird automatisch wieder gestartet)
 
# Systemupdate
#sudo apt update && sudo apt upgrade -y # Der folgende Befehl ist für die Automatisierung besser geeignet. upgrade sollte man nur nach Bedarf erledigen
sudo apt update
   
cd /home/dockervolumes
    
readarray -d '' composeConfigs < <(find . -type f -name docker-compose.y* -print0)
    
for cfg in "${composeConfigs[@]}"; do
  docker-compose -f "$cfg" pull
  docker-compose -f "$cfg" up -d
done
    
# Alte Images automatisch löschen
docker image prune -f

Strg-x, y, Enter

Zum Aufruf des Scriptes folgenden Befehl eingeben:

sudo bash mydockerupdatescript

Es werden alle Docker, die im Verzeichnis „/home/dockervolumes/“ vorhanden sind, geupdatet und die alten Images gelöscht.

Entfernt man bei den beiden Befehlen mit ## davor die ##, wird die Datenbank vor der Überprüfung der Docker gestoppt. Anschließend wird diese automatisch wieder gestartet. Dies dient zur Sicherheit, um einen Crash oder Datenverlust vorzubeugen, falls bei der Aktualisierung im selben Moment darauf geschrieben werden sollte. Nur interressant, wenn eine Datenbank betrieben wird.

Diesen Befehl …

sudo bash mydockerupdatescript

…kann man jetzt in OMV5 unter „geplante Aufgaben“ für die automatische Aktualisierung eintragen.