Dieses Tutorial ist VALID.

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

Haftungsausschluss / Disclaimer

Upgrade Nextcloud von v19 auf v20

Da ich in den Kommentaren darauf hingewiesen wurde, dass schon die v20 von Nextcloud draußen ist, machen wir doch gleich ein Upgrade.

Im Dockerfile ändert sich bis auf die Versionsnummer von v19 auf v20 nichts. Nur der Downloadserver von Nextcloud ist dauerüberlastet. Aber fear you not! Es gibt einen Mirror. Nur finden muss man den. Und das ist nicht so leicht :/

Packen wir’s an!

Upgrades NUR in direkter Linie!

Nextcloud kann man nur in einer Linie upgraden. Also von v19 auf v20. v18 kannst Du NICHT direkt auf v20 upgraden! Da schießt Du die Installation ab und musst viel manuell pfuschen, bis das wieder läuft.

Sicher? Sicher!

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

Änderungen?

Wie auch beim letzten mal machen wir uns mit einem Besuch der offiziellen Projektseite auf Github schlau…
https://github.com/nextcloud/docker

Hier finden wir nämlich die Verzeichnisse für v19 und die neue v20.
Davon nehmen wir jeweils das „Dockerfile“ und werfen es in ein Vergleichs-Tool.

Also, was hat sich geändert?

  • „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. 20.0.1 ist Stand Heute aktuell.

ABER

Beim Testen kam das alte Leiden von Nextcloud zum Tragen: Ihr total überlaufener Download Server. Einmal hat es geklappt und nach gut 15 Minuten (!) war die Nextcloud-Server-Datei geladen. Aber viele Male scheiterte der Verbindungsaufbau.

Ein CDN haben die nicht. Mirrors auch nicht. Nach einer Stunde Suchen habe ich dann doch tatsächlich einen brauchbaren Spiegelserver bei github gefunden. Die neuen Links bauen wir entsprechend gleich mit ins Dockerfile ein…

!Hinweis!
Leider wird der Mirror nicht wirklich gepflegt und bei Version 20.0.2 liegen keine Dateien vor. Für die 20.0.1 funktioniert er. Also bitte den Download nicht umbiegen, wenn Du schon eine Version weiter bist…

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

nano ~/docker/nextcloud-php74-apache/Dockerfile
### Der neue Config-Block in v20:
...
ENV NEXTCLOUD_VERSION 20.0.1
...
### Hinweis!
### Der Download funktioniert leider NUR für v20.0.1
### für andere Versionen bitte auf dem originalen Server bleiben und beten, dass er liefert...
curl -fsSL -o nextcloud.tar.bz2 \
   "https://github.com/nextcloud/server/releases/download/v${NEXTCLOUD_VERSION}/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc \
   "https://github.com/nextcloud/server/releases/download/v${NEXTCLOUD_VERSION}/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2.asc"; \
...

Als nächstes holen wir uns die aktuellen Config-Dateien zur v20:

wget -qNP ~/docker/nextcloud-php74-apache/config https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/apache-pretty-urls.config.php https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/apcu.config.php https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/apps.config.php https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/autoconfig.php https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/redis.config.php https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/config/smtp.config.php

wget -qNP ~/docker/nextcloud-php74-apache https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/cron.sh https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/entrypoint.sh https://raw.githubusercontent.com/nextcloud/docker/master/20.0/apache/upgrade.exclude

chmod +x ~/docker/nextcloud-php74-apache/*.sh

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

nano ~/update-docker.sh

### Build NEXTCLOUD
time docker build -t nextcloud-php74-apache:20.0.1 ~/docker/nextcloud-php74-apache
docker tag nextcloud-php74-apache:20.0.1 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 v20 einloggen… Dazu wechseln wir im Browser zu unserer Nextcloud-Installation und melden uns an.

Bekommen wir einen „Bad Gateway“ – Fehler, ist das Upgrade noch nicht fertig. Einfach 20 Sekunden warten und noch mal probieren.

Klappt der Login, stellen wir erschrocken fest, dass wir jetzt in einem super hässlichen „Dashboard“ raus kommen. Hier gelangen wir oben links über „Dateien“ wieder zur gewohnten Ansicht. Echt. Was denken die sich?

Anpassungen im Container

Gehen wir auf „Menü – Einstellungen – Übersicht“, ist unser Server diesmal mit uns zufrieden und möchte keine manuellen Anpassungen an der Datenbank. Oh Wunder :)

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 19.x.x. Davon kopieren wir die ID.

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

Fazit

In guten 10 Minuten haben wir die Mission erfüllt und unser neues Nextcloud v20 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 nach dem Umstellen auf die Spiegelserver auf allen Maschinen reibungslos.
Hoffe, bei Dir hat auch alles geklappt?

Wenn was schief läuft…

Im Artikel „Nextcloud Server updaten“ ganz unten bei „Murphy’s Law“ sind ein paar Hinweise, falls wir im Wartungsmodus hängen bleiben oder direkt im Container etwas anpassen müssen.

Anzeige *

6 Kommentare zu „Upgrade Nextcloud von v19 auf v20“

  1. Helmut Westhäuser

    Hi Peter,
    erstmal: Vielen Dank für Deine Arbeit und dafür, dass Du das so verständlich ins Netz stellst. Ich wollte schon lange so einen Server aufbauen, komme aber regelmäßig nicht dazu mich so tiefgehend in Docker einzuarbeiten…. Super! (Kann ich Dir wenigstens irgendwie einen Kaffee spendieren?)

    Ein Hinweis zum Update auf Nextcloud 20:
    ich hatte das Problem, dass Nextcloud nach dem Update auf Version 20 im Wartungsmodus gelandet ist.
    Ich habe dann im Container den maintenance mode ausgeschaltet, daraufhin hat Nextcloud (im Browser) angezeigt, dass ein Update gemacht werden müsse (mail). Danach aber wieder Wartungsmode. Nochmal ausgeschaltet, wieder ein Update (Ich glaube, nun war es „News“) – jetzt hat’s geklappt! (Puuuh…)
    Also nochmal vielen Dank &
    Gruss aus Hessen, helmut

    1. Danke für die netten Worte, Helmut!

      Bei einem der Upgrades, glaub von v16 auf v17, ist mir die Nextcloud auch im Wartungsmodus hängen geblieben. Da war dann erst mal Panik :/

      Hast Du direkt von v19 auf v20 geupgradet? Wenn Du die Linie brichst, wirst Du bei einer normalen Installation darauf hingewiesen, dass das keine gute Idee ist. Bei Docker wird das ohne Gnade ausgeführt und dann steht der Server. Eventuell haben sie das aber entschärft. Damals bin ich da aber einmal voll reingefallen.

      Guter Hinweis, ich habe noch Links in die Upgrade-Artikel eingefügt, die zum „Server Update“ Artikel verweisen. Da sind die „gängigsten“ Probleme beschrieben.

      Freut mich, dass Du das Upgrade hinbekommen hast, auch, wenn es holpriger war…

      Das Angebot mit dem Kaffee nehm ich gerne an ;)
      Was mich wieder daran erinnert, dass ich einen PayPal-Spenden-Button bauen wollte.
      Falls Du möchtest, kannst Du mir gerne was auf meinen PayPal Link „paypal.me/bitterbolt“ schicken. Vielen Dank!

      Wünsch Dir noch einen schönen Sonntag!
      Peter.

        1. Kaffee ist angekommen, vielen lieben Dank, Helmut :)

          Ist echt komisch. Bei mir ist das Upgrade ohne Hickhack durchgelaufen…
          Naja, Hauptsache, es funktioniert wieder alles!

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