Update Emby-Docker

Erstellt: 2022-12-11 | Änderungsstand: 2024-06-28

2024-06-28: Systemupdate hinzugefügt und auf aktuelle Docker Compose-Version aktualisiert.

Ich verwende dafür ein kleines Script. Ich muss bedenken, dass ALLE Docker, von denen sich in Dockervolumes die Scripte befinden, geupdated und gestartet werden, auch wenn diese nicht relevant sind. Soll heißen, dass die Compose-Files von Dockern, die keine Verwendung mehr haben oder momentan nicht benötigt werden, nicht im Verzeichnis /home/dockervolumes sein sollten. Als Bonus kann man in einem Logfile schauen, wann das letzte Update mit diesem Script getätigt wurde.

Im Terminal als root anmelden:

sudo su
touch /home/updatelog.txt && echo // Updates mit "updatescript"  | tee -a /home/updatelog.txt
cd && mkdir -p scriptfiles
cd && cd scriptfiles && nano updatescript.sh

Folgendes eintragen und ggnf. anpassen:

#!/bin/bash
# Automatisches Update ALLER Docker der Docker-Compose-Scriptfiles: /home/dockervolumes/*
# Dateipfad: ~/scriptfiles/updatescript.sh
# Logfile: /home/updatelog.txt
 
sudo apt-get update && sudo apt-get upgrade -y
 
cd /home/dockervolumes
 
readarray -d '' composeConfigs < <(find . -type f -name docker-compose.y* -print0)
 
for cfg in "${composeConfigs[@]}"; do
#  sudo docker compose -f "$cfg" stop
  sudo docker compose -f "$cfg" pull
  sudo docker compose -f "$cfg" up -d
done
 
# Alte Images automatisch löschen
sudo docker image prune -f
#
## Logfile Eintrag (wenn nicht benötigt, dann # davor setzen)
echo d=$(date +%y-%m-%d_%H:%M:%S) | sudo tee -a /home/updatelog.txt

Strg-x, y, Enter

sudo chmod 700 updatescript.sh

Zum Aufruf des Scriptes folgenden Befehl eingeben:

sudo ./updatescript.sh

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

Ich stoppe in diesem Script, bei meiner eigenen Verwendung, automatisch, vor der Aktualisierung der Docker, vorsichtshalber den Emby-Docker. Dies dient zur Sicherheit, um einen Crash oder Datenverlust vorzubeugen, falls bei der Aktualisierung im selben Moment darauf geschrieben werden sollte. Emby-Docker startet nach Ablauf des Scriptes automatisch.

Unter /home/updatelog.txt kann man den Zeitpunkt der Updates einsehen. Mein erster Eintrag sieht folgendermaßen aus:

// Updates mit updatescript
d=21-05-04_23:44:03

Strg-x zum Beenden.

Cronjob für die automatische Aktualisierung einrichten:

Möchte man das Script täglich durchlaufen lassen, dann hilft folgendes (immer noch als root angemeldet):

sudo crontab -e

Folgendes am Ende der Datei einfügen (das Hashtag am Ende nicht vergessen):

0 2 * * * ~/scriptfiles/updatescript.sh >/dev/null 2>&1
#

STGR-x, y, Enter

Jetzt wird täglich 02:00 Uhr geschaut, ob ein Update des Dockers verfügbar ist und gegebenenfalls geupdated.

Täglich 02:10 Uhr wäre dann:

10 2 * * * ~/scriptfiles/updatescript.sh >/dev/null 2>&1
#

STGR-x, y, Enter

Möchte man nur einmal pro Woche am Montag updaten, dann:

0 5 * * 1 ~/scriptfiles/updatescript.sh >/dev/null 2>&1
#

STGR-x, y, Enter

Oder nur am 1. des Monats um 05:00 Uhr:

0 5 1 * * ~/scriptfiles/updatescript.sh >/dev/null 2>&1
#

STGR-x, y, Enter

exit
sudo reboot

Quelle: https://wiki.ubuntuusers.de/Cron/

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten