Wenn Sie die Updates über die Benutzeroberfläche durchführen, erhalten Sie schließlich eine Meldung, dass Sie ein Befehlszeilenupdate durchführen müssen. Dies hängt nicht von Debian ab, sondern vom zugrunde liegenden Discourse-Image.
Und bei der 2-Container-Methode gäbe es gar keinen GUI-Update-Button, richtig?
Das GUI-Update stammt vom discourse_docker-Plugin. Wenn Sie dieses Plugin haben, erhalten Sie das GUI-Update.
Wenn Schwachstellen in Bildbearbeitungswerkzeugen entdeckt werden, ist eine Remote-Code-Ausnahme in der Vergangenheit definitiv aufgetreten, was bedeutet, dass Sie nur einen Bild-Upload von einem kompromittierten System entfernt sind.
Clear Linux hat den Standard dafür gesetzt, wie schnell Sie unter Linux booten können. Es ist fantastische Arbeit, ich unterstütze es von ganzem Herzen.
Oh, das ändert die Dinge ein wenig. Aus irgendeinem Grund dachte ich, dass das GUI-Update nicht mit einer nicht standardmäßigen 2-Container-Installation funktionieren würde. In diesem Fall scheint es, solange der Administrator technisch kompetent ist, nicht viele Nachteile bei einer 2-Container-Installation zu geben. Ich möchte auf jeden Fall GUI-Updates haben, zum Beispiel, wenn ich nur mit meinem Handy unterwegs bin und ein wichtiges Discourse-Sicherheitsupdate herauskommt, kann ich es zumindest anwenden, ohne SSH-Zugriff zu haben.
Das ist meine Überzeugung. Man muss nur aufmerksam genug sein, um zu wissen, wann ein Postgres- oder Redis-Upgrade eine Neuerstellung des Datencontainers erfordert. Man muss auch wissen, wie man ./launcher bootstrap web_only && ./launcher destroy web_only; ./launcher start web_only ausführt, aber das ist nicht so schwer. Man kann auch einfach ./launcher rebuild web_only ausführen, aber das legt die Seite während des Neuerstellungsprozesses lahm.
Nur um vollständig zu sein: Der Web-UI-Build hat normalerweise keinerlei Ausfallzeiten; das Bootstrap/Destroy/Start hat minimale Ausfallzeiten und ich würde es nur wie üblich mit einer extern bereitgestellten Wartungsseite durchführen, wie hier dokumentiert mit externem Nginx. Aber das ist sowieso eine gute Praxis, wenn auch nur, um IPv6-Adressen in den Container zu bekommen.
Sehr gut, danke. Und mit einer 2-Container-Installation erhalten Sie immer noch Benachrichtigungen auf dem Discourse-Dashboard, wenn der Container neu erstellt werden muss? Und in diesem Fall könnte ich dann feststellen, ob ich nur die App oder auch den Datencontainer neu erstellen soll?
Ja. Ich sehe es jetzt, weil ich das Update „nur die Version hat sich geändert“ 3.1.0.beta1 noch nicht angewendet habe. ![]()
Dies ist ein Fall von „es ist in Ordnung, bis es das nicht mehr ist“ – die Leute geraten in Panik, wenn das Update in der Benutzeroberfläche fehlschlägt und sie nicht wissen, dass sie git pull; ./launcher rebuild app ausführen müssen, um das Problem zu umgehen. Das passiert jedes Mal, wenn es eine Änderung gibt, die das GUI-Update ungültig macht, glaube ich. Es ist wieder passiert:
Ich glaube, diese Panik unterstreicht den Wert eines konsistenten, normalen Update-Mechanismus, der diese Erfahrung vermeidet.
Gleichzeitig stieß ich auf den ebenfalls seltenen Fall, dass der Bootstrap das laufende System beschädigt: Zero-ish-downtime-Updates schlagen gelegentlich wie hier fehl, vielleicht ein- oder zweimal im Jahr im Durchschnitt? Verzögern Sie also nicht zwischen dem Bootstrap und dem Destroy/Start.
Ich sollte den Text aktualisieren, um das klarzustellen, das werde ich als Nächstes tun.
Ich habe LibreTranslate noch nicht bereitgestellt, aber ich erwäge, dies zu tun, um meine Website internationaler verfügbar zu machen.
Wenn mir das erfolgreich gelingt, beabsichtige ich, dies in den ersten Beitrag zu bearbeiten. ![]()