Manuelles Update von Discourse und Docker Image auf die neueste Version

:bookmark: Dieses Handbuch enthält schrittweise Anleitungen zur manuellen Aktualisierung von Discourse, dem Docker-Container und dem Ubuntu-Betriebssystem in einer selbst gehosteten Umgebung.

:person_raising_hand: Erforderliches Benutzerniveau: Systemadministrator

:warning: SSH-Zugriff auf den Server.

Wenn Sie Discourse selbst hosten, müssen Sie gelegentlich ein manuelles Update über die Befehlszeile durchführen, um die neuesten Sicherheits-Releases und neuesten Bibliotheken zu erhalten.

Diese Updates werden auf admin/upgrade nicht übernommen. Deshalb müssen Sie gelegentlich diese zusätzlichen Schritte durchführen:

Discourse aktualisieren

  1. Discourse selbst sollte etwa zweimal im Monat aktualisiert werden, indem Sie in Ihrem Admin-Dashboard auf die Schaltfläche „Auf neueste Version aktualisieren“ klicken (admin/upgrade).

  2. Alle zwei Monate empfehlen wir, sich per SSH mit Ihrem Webserver zu verbinden (mit PuTTY oder Ihrem bevorzugten SSH-Client) und die folgenden Befehle auszuführen, insbesondere wenn die Upgrade-Seite nicht angezeigt wird oder Sie Probleme beim Versuch des Upgrades haben.

cd /var/discourse
./launcher rebuild app

Docker-Image und Ubuntu OS aktualisieren

Stellen Sie bei Ubuntu-Updates sicher, dass Sie automatische Sicherheitsupdates für Ihr Ubuntu aktiviert haben! Der Befehl lautet:

dpkg-reconfigure -plow unattended-upgrades

Dadurch werden jedoch nur kritische Sicherheits-Updates abgedeckt. Gelegentlich sollten Sie alle OS-Updates wie folgt durchführen:

apt-get update
apt-get dist-upgrade

Dadurch wird auch Docker über die Standardpakete docker-ce aktuell gehalten.

Zusammenfassend lässt sich sagen:

  • Discourse zweimal im Monat über den Web-Updater aktualisieren
  • den Container alle zwei Monate aktualisieren
  • das OS alle sechs Monate aktualisieren

Sie könnten diese Zahlen verdoppeln und wären immer noch ziemlich sicher, z. B. Discourse einmal im Monat, Container alle 4 Monate, OS einmal alle 12 Monate usw. aktualisieren.

Aber Sie möchten wirklich, wirklich automatische Sicherheitsupdates in Ubuntu aktiviert haben, wie oben aufgeführt.

FAQ

Wann ist der richtige Zeitpunkt für ein Update?

Das hängt von der Ihnen zur Verfügung stehenden Zeit und davon ab, wie nah am neuesten Stand Sie sein möchten. Wenn Sie inoffizielle Plugins haben, ist es sehr ratsam, eine Test-/Staging-Umgebung zu nutzen. Wenn Sie keine inoffiziellen Plugins haben, können Sie wahrscheinlich sofort aktualisieren, aber selbst dann können einige Plugins für ein paar Tage ausfallen, während das Team sie behebt (es gibt viele davon).

Was ist die gängige Vorgehensweise beim Aktualisieren mit vielen installierten Plugins?

Wenn Sie viele Plugins haben, wird dringend empfohlen, lokal oder auf einem Testserver zu testen. Besonders wenn Sie inoffizielle Plugins haben, da etwas kaputt gegangen sein könnte. Wenn Sie feststellen, dass etwas kaputt geht, kommt es darauf an: Haben Sie Zeit, es zu reparieren? Hat der ursprüngliche Plugin-Autor Zeit, es zu reparieren? Beides kann Wochen dauern. Auf diese Weise haben Sie zumindest eine defekte Testseite und keine defekte Produktionsseite.

Mir geht der Speicherplatz aus

Wenn Ihnen der Speicherplatz ausgeht (prüfen Sie mit df), versuchen Sie, alte Images mit folgenden Befehlen zu bereinigen:

./launcher cleanup
apt-get autoclean
apt-get autoremove

Spielt die Aktualisierung der eigentlichen Serverversion von Ubuntu eine Rolle, da Discourse immer in Docker läuft?

Es spielt eine viel geringere Rolle. Aber Sie sollten sich auf mindestens einer derzeit unterstützten LTS-Version von Ubuntu Server befinden. Ein 64-Bit-Linux-OS mit einer modernen Kernel-Version ist erforderlich.

178 „Gefällt mir“
"Upgrade all" button is awesome!
Ubuntu 16.04 LTS - upgrade or migrate?
Cannot upgrade due to old version of docker
Daily performance reports keep asking to rebuild container
No longer getting notifications for out of date containers
Discourse stopping working - CPU/RAM load?
Manual upgrade fails
Upgrade container - keeping config and data
Installed OK. Working fine for one day. Suddenly stopped working
Issues upgrading from 1.6.0.Beta10+9 to 2.3.0.beta6
Upgrade link no longer works
Update error, website unavailable, possibly plugin related?
How to optimize storage?
Why do I need a block storage?
Digital Ocean hosting: Do I need a system admin?
Will not load, no access to installation, aufs not installed - my fix
Upgrade V2.1 Beta 2 to Beta 4 Require ./launcher rebuild app Twice
Some trouble updating (many bugs)
What makes a successful volunteer Discourse sysadmin?
Searching locks up the server for a while
Link-image not shown
Oops - Error 500 After Update From Admin Dashboard
Crash After Recent Update
Edit CSS/HTML editor cursor offset makes it unusable due to CSS font override
Oops The software powering this discussion forum encountered an unexpected problem
Upgrades via UI disabled - and not being re-enabled after SSH upgrade
Error upgrading, failed to bootstrap
Help after updating from ssh site goes down
My Discourse is Down. Certificate Issue?
Unable to update Discourse...help?
Reset password link error
Empty update page?
My website is always down
Upgrade container - keeping config and data
Failed to update Discourse new version
Unable to upgrade docker_manager
Undefined method `timeout=' for Regexp:Class
How often should I update Discourse?
Migration failed: relation "user_required_fields_versions" already exists
Kernel version upgrade required when manually updating discourse
Cannot rebuild following site failure: "postgres already running"
Visiting /admin/upgrade may lead to a server error
Updating I get a "Configuring openssh-server" message about the "sshd_config" file
Update Not Completing
Problem with api version when updating docker manager
Problem with Upgrade [error 137]
Problem updating my installation
Update in browser vs Terminal
Docker update to latest version
How often should I update Discourse?
Self hosted Reply by Email stopped working after latest update
Error 500 how to fix?
Site down after UI update
Docker update to latest version
Selectable avatars upload broken (Missing required UppyUpload config: id)
Discourse broken after failed upgrade
How to tell whether to upgrade via web or console?
Oops The software powering this discussion forum encountered an unexpected problem
Determining whether my VPS needs any upgrades (generally)
Kernel version upgrade required when manually updating discourse
Upgrade button is 500-ing for me
1.4.3 Upgrade Oddity?
Add path to cookie
Your Docker installation is not working correctly - no space left on device - safe to use ./launcher cleanup?
PNG's a no show
Upgrade from v2.0.0.beta10 +37 to 2.1.0.beta1 does fail
Kernel Panic after droplet reboot... What now?
Failed to bootstrap 1.6.0.beta 8 with out of date docker
Problem with category style = box under firefox
Site fails to load with js errors
ERROR: You are running an old version of the Discourse image
Service not available | Update Error due to broken plugin
What do you want to do about modified configuration file grub?
Failed Upgrade Discourse and Plugins
Insert Date Timezone is always UTC ; my Timezone is ignored
Admin upgrade page does not exist
Upgrading from 2.9.0.beta8 broke the site, unrecoverable
Error when upgrading and would like to solve or reset
Update failed - Not starting
Failed to rebuild: no such file /usr/local/etc/ImageMagick-6/policy.xml
Upgrade ends with FAILED TO BOOTSTRAP
"400 Bad Request" error after upgrading
Hello, after clicking login, it takes 20 seconds to load before you can enter my page. why?

Die Anleitungen werden ziemlich häufig überprüft und aktualisiert (diese hier scheint im Februar ein wenig angepasst worden zu sein). :+1:

Die einzige, mit der ich persönlich nicht vertraut bin, ist die Docker-Anleitung:

Aber ich kann für die Richtigkeit der übrigen bürgen. :slight_smile:

3 „Gefällt mir“

Ich habe gerade alle diese Befehle auf meiner Testseite ausgeführt, einschließlich des Docker-Updates, und sie funktionierten ohne Probleme.

5 „Gefällt mir“

Ich habe einen Bericht erhalten, dass dies bei der Ausführung ein Problem verursacht. Ich glaube nicht, dass ich es jemals selbst in den paar Jahren, in denen ich eine DO-Testseite hatte, benutzt habe.

Hat jemand aktuelle Erfahrungen damit, um sagen zu können, ob es sich immer noch um eine relevante Empfehlung handelt oder nicht?


Ich habe gerade die gelöschten Beiträge durchgesehen und ein paar gefunden, bei denen dieser Teil des Leitfadens zuvor angesprochen wurde [1] und es scheint, dass @MarkDoerr ihn ohne Probleme ausgeführt hat.

Ich bin mir jedoch immer noch nicht sicher, wann/unter welchen Umständen Sie ihn ausführen müssten? Habe ich zu viel Vertrauen in Docker Manager?


  1. Ich habe sie wiederhergestellt ↩︎

2 „Gefällt mir“

2 Beiträge wurden in ein neues Thema aufgeteilt: Wann soll der Datencontainer eines Zwei-Container-Setups aktualisiert werden?

Ein Beitrag wurde zu einem neuen Thema aufgeteilt: Upgrading v2.2.0.beta4 forum with unknown local changes

Habe versucht, diesen Befehl auszuführen (wget -qO- https://get.docker.com/ | sh) und er meldet:

Kann keine Verbindung zum Docker-Daemon unter unix:///var/run/docker.sock herstellen. Läuft der Docker-Daemon?

Es scheint, dass dies nicht funktioniert hat, um Docker zu aktualisieren.

Es scheint auch, dass dies dazu geführt hat, dass die gesamte Website abgestürzt ist, und die App kann nicht neu erstellt werden und meldet:

Kann keine Verbindung zum Docker-Daemon herstellen - überprüfen Sie, ob er läuft und Sie Zugriff haben

Nach dem Neustart des Servers ist die Website wieder online.

[Zitat=“Architekt, Beitrag:296, Thema:23325”]
Nach dem Neustart ist die Serverseite wieder online.
[/Zitat]

Vielleicht hat das Upgrade tatsächlich stattgefunden, aber es wurde kein Docker neu gestartet. Du kannst das überprüfen mit

docker --version

Es stellt sich heraus, dass mein Laptop eine alte Docker-Version hatte, und ich habe den empfohlenen Befehl ausgeführt, ohne dass ein Neustart notwendig war. Hier ist die Version, die ich bekomme:

$ docker --version
Docker-Version 26.1.4, Build 5650f9b
1 „Gefällt mir“

Habe die gleiche Docker-Version:

Docker version 26.1.4, build 5650f9b
1 „Gefällt mir“

Dann sind Sie auf dem neuesten Stand und alles ist in Ordnung!

3 „Gefällt mir“

Ich wusste, dass ich dieses Dokument über die Update-Kadenz von Discourse gesehen hatte, hatte aber Schwierigkeiten, es wiederzufinden, da es sich unter „Using Docker“ in Documentation befindet und „Manually update Docker“ heißt.

Da es Discourse- und Ubuntu-Updates abdeckt, könnte es auch an ein oder zwei anderen Stellen auf der Speisekarte stehen?

1 „Gefällt mir“

Wenn Discourse Sie auffordert, ein Bild zu aktualisieren (sodass ein Upgrade nicht über die Benutzeroberfläche möglich ist), wird Folgendes empfohlen:

    cd /var/discourse
    git pull
    ./launcher rebuild app

Wozu dient dieser zusätzliche git pull und warum empfehlen Sie ihn nicht im Handbuch?

3 „Gefällt mir“

Es ist ein altes Relikt und wird nicht mehr benötigt. Rebuild erledigt das.

2 „Gefällt mir“

Ich mache einen PR?

3 „Gefällt mir“
6 „Gefällt mir“

Zusammengeführt, danke @tvavrda!

6 „Gefällt mir“