Upgrade eines sehr alten Discourse: Get Ruby Fehler

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?

Ihr Container-Image ist möglicherweise an ein sehr altes Discourse-Basis-Image angeheftet.

Können Sie hier Ihre (redigierte) Container-Konfiguration posten?

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

Und es wurde vor 3 Jahren erstellt.

1 „Gefällt mir“

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.

2 „Gefällt mir“

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.

Sie sollten einfach ./launcher start app ausführen können, um zur alten Website zurückzukehren.

1 „Gefällt mir“

Das habe ich jetzt versucht und bekomme jetzt das 502 Bad Gateway Problem :sigh:

1 „Gefällt mir“

Ich würde /var/discourse vom alten auf den neuen Server mit rsync übertragen. Oder vielleicht nur containers und shared.

OK, ich bin hier so weit überfordert, dass meine Lösung darin besteht, eine bezahlte Gesuch-Anzeige im Marktplatz zu schalten :grinning:

2 „Gefällt mir“

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.

4 „Gefällt mir“