Nextcloud mit Watchtower

Guten Abend,

habe gerade eine Nextcloud in eine docker-compose.yml aufgesetzt. Sprich mit der Nextcloud, Redis und Datenbank.

docker-compose.yml

version: ‘3’

services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- /volume1/docker/nextcloud_apache/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test
env_file:
- db.env

redis:
image: redis:alpine
restart: always

app:
image: nextcloud:apache
restart: always
ports:
- 8080:80
volumes:
- /volume1/docker/nextcloud_apache/data:/var/www/html
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
env_file:
- db.env
depends_on:
- db
- redis

cron:
image: nextcloud:apache
restart: always
volumes:
- /volume1/docker/nextcloud_apache/data:/var/www/html
entrypoint: /cron.sh
depends_on:
- db
- redis

Das alles wird auf einer Synology betrieben. Dort wird auch ein Watchtowe-Container gehostet um alle Docker-Container auf dem neuesten stand zu halten.

Klappt das mit der docker-compose.yml auch oder wird hier bei einem Update von den 3 Containern die ganze Nextcloud zerschossen?

MFG Schmidt

Theoretisch sollte es funktionieren in der Praxis wĂŒrde ich das nicht komplett automatisieren. Ich sage mal so. Es besteht immer die Chance, dass bei einem Upgrade von Nextcloud irgendetwas nicht auf Anhieb so funktioniert wie du es erwartest oder Anpassungen nötig sind, vorallem bei Major Updates auf eine komplett neue Version. Und wenn du dann keine Gelegenheit hast zu intervenieren weil du unterwegs bist oder warum auch immer, geht dann halt im schlimmsten Fall erst mal nichts.

Es kann sein, dass bei einem Docker basierten Nextcloud weniger manuelle Eingriffe bei Updates nötig sind, als bei einer manuellen Installation, da hast du sicher mehr Erfahrung als ich. Oder anders gesagt, wenn du die letzten zehnmal nach docker-compose pull und docker-compose up -d keine Probleme hattest (Watchtower macht grundsĂ€tzlich genau das, wenn ich es richtig verstehe), hast du höchstwarscheinlich auch beim elften mal keine, aber viellecht dann beim zwölften mal
 :wink:

Fazit: Persönlich wĂŒrde ich Watchtower so konfigurieren, dass es mich nur benachrichtigt, wenn Updates zur VerfĂŒgung stehen. Wie du du das aber handhabst, ist schlussendlich dir ĂŒberlassen und hĂ€ngt schlussendlich davon ab wie “mission critical” die Nextcloud fĂŒr dich ist.

Ich hoffe das hilft irgendwie, obwohl ich keine klare entweder oder Aussage gemacht habe. Vielleicht können andere, welche Nextcloud mit Docker produktiv nutzen, hier noch etwas detailierter Auskunft geben


1 Like

praktisch auch.

man muss schauen, ob man die “datenbank” skripte laufen lassen muss. (missing:index, et.al.) die sind aber optional, es lĂ€uft auch weiter, wenn man die nicht sofort lĂ€ufen lĂ€ĂŸt.

das könnte recht hĂ€ufig sein. es werden ja alle updates der images gemeldet. das schließt die updates der drunterliegenden layer mit ein. du bekommst wöchentlich nachrichten.

@daschmidt94 du musst drauf achten, dass alle container richtig “verlinkt” sind. sonst wird z.b. redis erneuert, aber der nextcloud container nicht mit durchgestartet und es kommt zu “error 500”.

danke fĂŒr die Antwort.

Wie jedoch kann ich sehen, ob alle Container richtig verlinkt sind?

Danke fĂŒr deine AusfĂŒhrungen. Ich bin da halt immer sehr vorsichtig. Es könnte ja theoretisch auch mal ein Fehler mit einem Image ausgeliefert werden
 Aber gut zu wissen, dass Updates mit Docker relativ schmerzfrei möglich sind :slight_smile:

Gibt es eigentlich eine Möglichkeit, dass man nur Updates von Minor Releases erhĂ€lt und nicht automatisch auf eine neue Major Version aktualisiert wird mit den offiziellen Docker Image? Oder ist das sogar standardmĂ€ssig so? Ich nutze selbst eine klassische Installation mit LAMP, fĂ€nde es aber interessant zu wissen
 Simples ja oder nein reicht mir :slight_smile:

ich kenn den term in docker-compose nicht. irgendwas mit “link:” oder “depends:” . und der nextcloud container hĂ€ngt von der db und redis ab. wenn du nginx&fpm-php nutzt, dann auch noch der nginx container.

wenn du was vergessen hast, erfĂ€hrst du’s nach dem ersten update. :wink:

es geht ja nix kaputt. ein hÀndischer restart fixed alles.

klar. du wÀhlst einen image tag. latest ist nur einer davon. nextcloud tagt sehr ordentlich. da kannst du dein image auf jede dezimalstelle pinnen. wenn du 20.0.6-apache als image wÀhlst, bleibt deine nextcloud version konstant, aber du bekommst die apache und os updates.

grafik

bei postgresql ist es ĂŒbrigens 'ne doofe idee, auf latest zu gehen. da musst du bei 10, 11, 12 bleiben. die datenbank files sind untereinander nicht kompatible. wie man ein update von 10 nach 11, usw. macht ist im readme auf hub.docker.com beschrieben.

auch hier ist das praktisch der fall. das ganze forum ist voll von “mein update hat nicht funktioniert”

man sollte sein system so einstellen, dass in der nacht vor dem update um 5 uhr, jeweils um 0 uhr immer ein backup gemacht wird. :wink:

ich nutze eine automatisierte docker installation und unattendet security fixes des host. da kann ich auch mal zwei tage heise und golem nicht lesen und schreck nicht jeden morgen hoch, ob’s wieder irgendwo 'ne lĂŒcke gibt.

man muss dann halt debian, ubuntu, nextcloud und den anderen trauen, dass sie nicht so dÀmlich sind, wie solarwinds.

klar. du wÀhlst einen image tag. latest ist nur einer davon. nextcloud tagt sehr ordentlich. da kannst du dein image auf jede dezimalstelle pinnen. wenn du 20.0.6-apache als image wÀhlst, bleibt deine nextcloud version konstant, aber du bekommst die apache und os updates.

Danke fĂŒr die ausfĂŒhrliche Antwort. Gut zu wissen, auch wenn ich jetzt nicht morgen (vielleicht auch nie) alles auf Docker umstellen werde. :wink:

man sollte sein system so einstellen, dass in der nacht vor dem update um 5 uhr, jeweils um 0 uhr immer ein backup gemacht wird.

Ja Backup ist wichtig :wink: Meine Nextcloud lĂ€uft in einer Proxmox VM. Proxmox macht stĂŒndliche ZFS Snapshots der VM plus ein tĂ€gliches Full Backup auf das NAS. ZusĂ€tzlich mache ich noch einen tĂ€glichen Rsync des Datenverzeichnisses vom NAS aus, um einfach einzelne Dateien wiederherstellen zu können ohne die ganze Nextcloud um einen Tag zurĂŒcksetzten zu mĂŒssen.

ich nutze eine automatisierte docker installation und unattendet security fixes des host. da kann ich auch mal zwei tage heise und golem nicht lesen und schreck nicht jeden morgen hoch, ob’s wieder irgendwo 'ne lĂŒcke gibt.

Ich habe Mailbenachrichtigungen mit apticron aktiviert und update das System in der Regel innerhalb von ein paar Stunden maximal am nÀchsten Tag manuell wenn es aktualisierte Pakete gibt. Der Vorteil ist, dass ich dann schnell reagieren kann, falls ein Update etwas zerschiesst. Ist mir bisher aber nur einmal passiert mit einem PHP-Update.

→ restic.io

rsync ist kein backup tool


Kann restic auch so etwas wie rsync pull ĂŒber ssh? Ich möchte keinen Zugriff aus der DMZ auf das NAS zulassen, wenn es sich vermeiden lĂ€sst.

Und ja ich weiss, dass rsync nicht ideal ist, wobei es darauf ankommt wie man es konfiguriert. Das ganze ist bis jetzt nur eine zusĂ€tzliche “quick&dirty”-Lösung, um im Bedarfsfall schnell und einfach eine gelöschte Datei wiederherstellen zu können. Rsync habe ich so konfiguriert, dass es keine Dateien löscht. Eine Versionierung habe ich aber so natĂŒrlich nicht. Es bleibt einfach die letzte Version der Datei erhalten bevor sie gelöscht wurde. Könnte man aber natĂŒrlich mit entsprechewnden Scripts noch optimieren.

Das richtige Backup mache ich mit ZFS Snapshots auf dem Proxmox Host und sende sie via zfs send auf das NAS. Plus mache ich noch jede Nacht ein Vollbackup der VM. Das Problem mit den ZFS Snapshots ist halt, dass es etwas umstĂ€ndlich ist erst den Snapshot des gesammten VM-Block-Storages zu clonen und zu mounten, nur um daraus dann eine einzelne Datei wiederherzustellen. Zumal man dann auch noch wissen muss, wann sie ungefĂ€hr gelöscht wurde, weil man sonst das Prozedere mehrfach durchfĂŒhren muss, bis man sie findet. Geht aber im Notfall natĂŒrlich auch, wenn es sein muss. :wink:

@Reiner_Nippes danke fĂŒr die AusfĂŒhrliche erklĂ€rung.

Könntest noch kurz etwas bezĂŒglich cron-jobs im Docker sagen. Sprich hab schon in einigen BeitrĂ€ge gesehen du ratest dazu, den Cron per Host zu steuern sprich mit docker exec -u www-data nextcloud-app php cron.php.
Wie machst du es jedoch wenn du mehrere Cronjobs hast fĂŒr z.b. previews oder Ă€hnliches.

zur not schreibt man sich ein script, dass alle befehle ausfĂŒhrt und fĂŒhrt das skript mittels cron aus.

sollte auch auf einer synology gehen. oder?

ja in der Synology kann man Aufgaben erstellen.

WĂŒrdest du fĂŒr jeden befehl eine eigene Aufgabe erstellen?

hĂ€ngt davon ab, wie hĂ€ufig die jeweilige aufgabe laufen soll. und ob zu einem zeitpunkt dann gleichzeitig mehrere aufgaben starten. im skript werden die aufgaben sequentiell abgearbeitet. mehrer aufgaben zur selben zeiten wĂŒrden parallel laufen.

1 Like

hab heute mitbekommen, dass nach einem Watchtowerupdate die Nextcloud im Wartungsmodus bleibt. Ist das generell so?

@daschmidt94 hatte ich noch nicht. und meine ist jetzt auf 20.0.7