Ich versuche, eine sehr alte Installation zu aktualisieren.
Ich habe damit begonnen:
cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
Dann erhalte ich einen Fehler und wenn ich die Log-Datei nach oben scrolle, ist der einzige Fehler dieser:
ERROR: Fehler bei der Installation von Bundler:
bundler-2.5.3 erfordert Ruby-Version >= 3.0.0. Die aktuelle Ruby-Version ist 2.7.2.137.
Wie bekomme ich eine neue Installation von Ruby? Das System wurde ursprünglich aus einem Docker-Image auf Digital Ocean installiert und wurde seit mehreren Jahren kaum oder gar nicht aktualisiert.
Es läuft auf Ubuntu 18.04.
Ich habe ./discourse-doctor ausgeführt.
Und es gab einen Detached Head-Zustand und dann einen Rebuild und dann denselben Ruby-Fehler.
Ich bin jetzt völlig verloren.
Gibt es Hilfe, wie ich ein Upgrade von einer alten Version zum Laufen bringe?
Ich weiß nicht, wie das geht, aber aus der Ausgabe des Docker-Doktors habe ich Folgendes gefunden:
DOCKER VERSION: Docker version 19.03.1, build 74b1e89
Angesichts des Alters des Host-Rechners ist es wahrscheinlich am besten, ein Backup der Website zu erstellen, einen neuen Server zu erstellen, die Installation durchzuführen und dann das Backup auf dem neuen Server wiederherzustellen.
Es wird weniger Arbeit sein (und viel einfacher), als den bestehenden Server zu aktualisieren.
Aber da die Installation fehlgeschlagen ist, kann ich Discourse nicht starten, um ein Backup zu erstellen. Ich kann einen Snapshot des DigitalOcean-Droplets erstellen und habe dies auch getan, aber das ist kein richtiges Backup, soweit ich das verstehe.
Wenn Sie einen Snapshot des Droplets mit allen Ihren Daten haben, bevor Sie versucht haben, den Container zu aktualisieren, sollten Sie in der Lage sein, ein Backup davon zu erstellen.
Wenn nicht, ist das fast sicher immer noch in Ordnung, aber Sie benötigen jemanden, der sich mit dem Prozess auskennt, um die Daten daraus zu extrahieren, wenn Sie den Container nicht wieder zum Laufen bringen können.
Selbst mit dem “Bad Gateway”-Fehler sollten Sie jetzt, wenn Sie auf den Container zugreifen können, einen discourse backup ausführen und Ihre Daten erhalten können.