Dieses Tutorial ist VALID.

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Upgrade Nextcloud von v18 auf v19

Nachdem der Nexcloud Client mich in letzter Zeit recht impertinent auf ein Upgrade zu Version 19.0.2 hingewiesen hat, werde ich ihm diesen Gefallen tun, um wieder Ruhe zu haben…

Kleine Anpassungen im Dockerfile sind nötig und nach dem Upgrade müssen wir noch manuell das Wartungs-Tool laufen lassen. Aber alles in allem ist dieses Upgrade nicht aus der Welt.

Packen wir’s an!

Safety first, Sir!

IMMER erst ein Vollbackup ziehen, bevor wir irgendwas an der Konfiguration der Maschine oder einzelner Dienste ändern…!

What’s the difference?

Das Upgrade packen wir wie an?
Richtig! Mit einem Besuch der offiziellen Projektseite auf Github…
https://github.com/nextcloud/docker

Hier finden wir nämlich die Verzeichnisse für v18 und die neue v19.
Davon nehmen wir jeweils das „Dockerfile“ und werfen es in ein Vergleichs-Tool. Das Ergebnis ist zum Glück überschaubar.

Zu wenig Kaffee… Fällt mir gerade auf, dass ich das „neue“ mit dem „alten“ vertauscht habe. Rot und Grün ist in dem Fall umgekehrt. Ohje. Sollte so was nicht in aller Früh machen. Egal. Tun wir so, als wären wir rot/grün blind.

Also, was hat sich geändert?

  • Es entfallen die beiden Zeilen, welche die GMP-Bibliothek mit Parametern versorgt haben. Scheint so, als wäre das im php-Image jetzt schon mit drin. Oder man benutzt wieder Standard-Werte. Einerlei – wir brauchen jedenfalls nichts mehr konfigurieren an dieser Stelle.
  • Neu hinzugekommen ist das „bcmath“ Modul.
  • „redis“ wird in einer neuen Version installiert. Das tangiert uns aber nicht, weil wir die PHP Module ohne Version, also immer aktuell, verwenden.
  • Offensichtlich ändert sich natürlich auch die Versionsnummer von Nextcloud. 19.0.2 ist Stand Heute aktuell.

Wir öffnen unser Dockerfile und ändern die entsprechenden Zeilen:

nano ~/docker/nextcloud-php74-apache/Dockerfile
### Der neue Config-Block in v19:
...
    debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \

    docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \

    docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
    docker-php-ext-install -j "$(nproc)" \
        bcmath \
        exif \
        gd \
...
ENV NEXTCLOUD_VERSION 19.0.2
...

Nun passen wir das „update-docker.sh“-Script an und stellen die Version von Nextcloud auf 19.0.2 um:

nano ~/update-docker.sh

### Build NEXTCLOUD
time docker build -t nextcloud-php74-apache:19.0.2 ~/docker/nextcloud-php74-apache
docker tag nextcloud-php74-apache:19.0.2 nextcloud-php74-apache:latest

Im Anschluss lassen wir das Script laufen. Dies erstellt unser neues Nextcloud-Image.

~/update-docker.sh

Container umziehen

Ist der Build-Prozess fehlerfrei durchgelaufen, bauen wir uns einen neuen Container.

Das macht unser „upup-docker.sh“-Script, das wir jetzt ausführen:

~/upup-docker.sh

Geben wir der Maschine eine gute Minute, um unsere Installation zu finalisieren und das Upgrade auszuführen. Dann können wir uns in das neue Nextcloud v19 einloggen…

Anpassungen im Container

Wechseln wir im Browser zu unserer Nextcloud-Installation und melden uns an.

Gehen wir auf „Menü – Einstellungen – Übersicht“, mault uns der Server unter dem Punkt „Sicherheits- & Einrichtungswarnungen“ an, dass einige Datenbank-Optionen nicht passen. Diese müssen wir per Hand im Container richten. Aber dazu hat Nextcloud glücklicherweise ein Wartungs-Tool (occ) am Start…

Wir teleportieren als User „www-data“ in den Container „nextcloud“:

docker exec -u www-data -it nextcloud /bin/bash

### Ausführen des Wartungs-Scripts direkt im Container:
php occ db:convert-filecache-bigint
php occ db:add-missing-indices
php occ db:add-missing-columns

### Auftrag ausgeführt - wir verlassen den Container:
exit

Im Browser laden wir die Seite neu. Und siehe da: Die Fehlermeldungen sind verschwunden :)

Die Küche aufräumen

Auch das sollte uns mittlerweile geläufig sein…

  • Nachsehen, ob bei Docker alles läuft
  • docker system prune
  • altes Image manuell löschen
### Nachsehen, ob alles läuft:
docker ps -a
### "Status" ist "Up"

docker system prune
### mit "y" bestätigen. Killt die temporären Build-Images

docker images
### Listet alle Docker-Images auf, die wir auf dem Server haben. Hier suchen wir unser altes Nextcloud-Image mit dem Tag 18.x.x. Davon kopieren wir die ID.

docker rmi <id>
### Löscht das Image mit der angegebenen ID.

Fazit

Keine 10 Minuten später haben wir die Mission erfüllt und unser neues Nextcloud v19 im Einsatz.

Jetzt überprüfe ich an der Stelle, ob wirklich alles läuft…
Wenn alles gut aussieht, mache ich noch mal ein Vollbackup und logge mich dann glücklich aus dem Server aus.

Dieses Upgrade lief hier auf allen Maschinen reibungslos.
Wie hat es bei Dir geklappt?

Anzeige *

4 Kommentare zu „Upgrade Nextcloud von v18 auf v19“

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top