Könntest du bitte die vollständigen Protokolle dieses Fehlers bereitstellen? Ich möchte das Problem eingrenzen, damit wir es beheben können.
Desktop.zip (17,9 KB)
Nein, nicht die laufenden Site-Logs, sondern die Rebuild-Logs, in denen der Fehler auftritt.
Welche Dateien benötigst du?
Es handelt sich nicht um Dateien, sondern um die Ausgabe, die während eines Neuaufbaus auf der Standardausgabe erscheint. Das sind die Informationen, die im Terminal angezeigt werden, während der fehlerhafte Neuaufbau läuft.
Ich müsste den gesamten Prozess von vorne beginnen, um diese Logs zu erhalten.
Eine der ersten Fragen, die ich hier gestellt habe, betraf genau das: Installation text location. Ich habe mir angewöhnt, sie jetzt in OneNote zu kopieren und einzufügen.
Wenn du einen Rebuild durchführst, wird ein Pull ausgeführt, bei einem Bootstrap jedoch nicht.
Danke. Könntest du das im Detail erklären?
Der Grund für meine Frage ist, dass wir bei der Erstinstallation kein „rebuild" verwenden (was ich als das von dir gemeinte „bootstrapping" verstehe). Anschließend nutzen wir „rebuild", aber dann wird automatisch ein „git pull" ausgeführt. In dieser Kombination aus drei Befehlen kann ich nicht arbeiten, wenn ein „git pull" erforderlich ist.
cd /var/discourse
git pull
./launcher rebuild app
./discourse-setup
Das erledigt alles
Ist es jemals notwendig, git pull entweder bei der Erstinstallation oder bei einem nachfolgenden Rebuild auszuführen?
Sie müssen bei der ersten Installation kein git pull ausführen, da Sie das Repository gerade geklont haben. Ein git pull ist nur erforderlich, um eine aktualisierte Version von Discourse zu beziehen.
Und falls es sich um eine Erstinstallation handelt und Sie discourse-setup verwenden, führt dieses Tool den Neuaufbau durch (was ein git pull beinhaltet). Allerdings wird dies in der Regel nichts bewirken, es sei denn, es wurde ein Commit gepusht, während Sie discourse-setup ausgeführt haben.
Sind wir uns also einig, dass der Befehl git pull in der Gruppe von drei Befehlen in den Anweisungen niemals erforderlich ist? Damit meine ich folgendes:
Alternativ können Sie sich per SSH auf Ihren Server einloggen und neu erstellen mit:
cd /var/discourse git pull ./launcher rebuild app
Ich wette, der zusätzliche git pull ist unnötig, aufgrund des Codes hier:
Dieser prüft anscheinend die lokale Version, aktualisiert und startet den Launcher neu, falls er veraltet ist (und erledigt noch eine Reihe weiterer Dinge).
Daher sollte bei nachfolgenden Neubuilds nur Folgendes erforderlich sein:
cd /var/discourse
./launcher rebuild app
ohne den redundanten git pull.
(Hinweis: Es ist immer gut, in den Quellcode einzutauchen, um sicherer zu sein).
(Hinweis #2: Ich habe meinen obigen Beitrag gelöscht, der nur zur Verwirrung beigetragen hat).
Danke. Ich war mir sicher, dass ich mich auf irgendeine Weise davon überzeugt hatte (eher aus dem Forum als aus dem Code), also habe ich gesucht und folgendes gefunden:
Und PS: Es scheint, als hätte es so ziemlich „immer" so funktioniert:
Mir gefällt, wie im Internet „seit Menschengedenken“ zu ca. n. Chr. 2015 geworden ist ![]()
Ich würde hinzufügen, dass es nicht sofort offensichtlich ist, dass dieser Trick möglich ist:
Im Grunde prüft das Skript, ob es „selbst" veraltet ist, aktualisiert sich selbst (und alle zugehörigen Dateien) und führt sich dann erneut aus.
clever ![]()
Das ist ein wirklich nützliches Muster, das man auch anderswo einsetzen kann … großartig!