MariaDB-Update im Nextcloud-NAS verhindern

Nextcloud kann zurzeit nicht mit MariaDB ab Version 10.6 umgehen. Wie kann ich Watchtower davon abhalten, MariaDB zu aktualisieren ohne es ganz abzuschalten?

vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 3 Min.

Ich habe nach Ihrer Anleitung auf einem Synology-NAS mit Docker eine Nextcloud mit der Datenbank MariaDB und automatischem Aktualisieren per Watchtower aufgesetzt. Leider kann Nextcloud zurzeit nicht mit MariaDB-Versionen ab 10.6 umgehen, weil die den Zugriff auf komprimierte Tabellen verweigern. Beim nächsten größeren MariaDB-Release soll es auch keinen Workaround mehr geben. Da Watchtower immer auf die neueste Version aktualisiert, fürchte ich, dass es dann knallt. Wie kann ich Watchtower davon abhalten, MariaDB zu aktualisieren?

Nextcloud unterstützt MariaDB derzeit offiziell nur bis Version 10.5 und empfiehlt, nicht auf 10.6 und höher zu aktualisieren. Die einfachste Lösung auf dem Nextcloud-NAS ist, die automatischen Container-Updates per Watchtower abzuschalten. Dann bleibt allerdings auch Nextcloud auf dem jeweiligen Stand, bis Sie es durch Löschen und Neuanlegen des Containers manuell auffrischen.

Wenn Sie automatische Aktualisierung der Nextcloud beibehalten wollen, können Sie bei einer modernen Watchtower-Implementierung über ein beim Container-Start anzugebendes Label MariaDB vorläufig davon ausnehmen. Das klappt zurzeit leider nur auf der Kommandozeile, also per SSH-Zugriff als Admin auf der NAS-Shell. Da der alte Centurylink-Watchtower ebenso wie die etwas jüngere v2tec-Variante schon lange nicht mehr gepflegt werden, ist der Wechsel auf containrrr/watchtower ohnehin empfehlenswert. In der NAS-Shell stoppen und löschen Sie den Watchtower-Container mit

sudo docker stop watchtower
sudo docker rm watchtower

Dann starten Sie die Alternative mit folgendem Einzeiler:

sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -s "0 23 4 * * *" -v /etc/localtime:/etc/localtime:ro --cleanup

Der Parameter -s und das zusätzliche Volume-Mapping weisen Watchtower an, Updates spät in der Nacht zu machen, wenn kurze Aussetzer des Nextcloud-Dienstes nicht stören. Nun stoppen Sie den Nextcloud- und anschließend den MariaDB-Container:

sudo docker stop nextcloud1
sudo docker stop mariadb1
sudo docker rm mariadb1

Keine Angst vorm Löschen des Datenbank-Containers, seine Daten bleiben durch das Volume-Mapping ja außerhalb erhalten. Jetzt laden und starten Sie MariaDB einfacherweise gleich in der Shell neu, im Folgenden mit dem Beispielpfad für die SQL-Daten aus dem Artikel:

sudo docker run -d --restart unless-stopped --label=com.centurylinklabs.watchtower.enable=false -e MYSQL_ROOT_PASSWORD="IhrGeheimesDatenbankHauptPasswort" -p 3306:3306 --name mariadb1 -v /volume1/docker/sql:/var/lib/mysql mariadb:10.5

Die hier explizit angegebene Version 10.5 kommt noch ohne den Schalter für Zugriff auf komprimierte Tabellen aus. Falls Sie einen anderen Ordner für die Datenablage gewählt haben, ersetzen Sie im obigen Aufruf /volume/docker/sql durch den tatsächlichen Pfad. Bitte nicht vom Label-Anfang com.centurylinklabs irritieren lassen; diese Form ist in der containrrr/watchtower-Dokumentation explizit angegeben. Nun können Sie entweder gleich auf der Kommandozeile (sudo docker start nextcloud1) oder in der NAS-Docker-GUI Nextcloud neu starten.

Sobald Nextcloud und MariaDB die Migration auf unkomprimierte Tabellen geklärt haben, spricht nichts mehr dagegen, den Datenbank-Container wieder ins automatische Update hineinzunehmen.

(ea)