Plugin-Installation zerstörte die Website, Neuaufbau nicht möglich

Ich habe versucht, das Format-Plugin zu installieren, habe den Code jedoch an der falschen Stelle platziert. Als ich die Site neu aufgebaut und geladen habe, wurde das Plugin nicht initialisiert. Nachdem ich den Fehler gefunden und das Plugin entfernt habe, meldete das System einen Fehler in einer Zeile. Ich habe den Fehler in der Zeile gefunden, ihn mit yamllint geprüft, alles stimmte überein, und das Plugin entfernt – doch jetzt funktioniert der Neuaufbau nicht mehr. Es wird weiterhin ein persistenter Fehler angezeigt. Zwar kann ich die Startseite der Site laden, aber keine Themen oder sonstigen Inhalte.

Dies ist die Ausgabe aus dem Neuaufbau und dem Doctor:

Zusammenfassung
FEHLGESCHLAGEN
--------------------
NoMethodError: undefinierte Methode 'each' für nil:NilClass
Ort des Fehlers: /pups/lib/pups/config.rb:99:in 'run_commands'
dfd33a9a3be65ddb9a1fd19c19e5034a44c39f46e330ccdf0533f4f66d7d0005
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als einen geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.
root:/var/discourse# ./discourse-doctor
DISCOURSE DOCTOR Do 16. Jul 07:53:05 UTC 2020
OS: Linux itsbx 4.15.0-99-generic #100-Ubuntu SMP Mi 22. Apr 20:32:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux



==================== ERNSTES PROBLEM!!!! ====================
App läuft nicht!
Versuch, neu aufzubauen
==================== NEUAUFBAU-LOG ====================
Sicherstellen, dass der Launcher aktuell ist
Abrufen von origin
Launcher ist auf dem neuesten Stand
Stoppen des alten Containers
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Bereits aktuell.
I, [2020-07-16T07:53:23.985444 #1]  INFO -- : Laden von --stdin


FEHLGESCHLAGEN
--------------------
NoMethodError: undefinierte Methode 'each' für nil:NilClass
Ort des Fehlers: /pups/lib/pups/config.rb:99:in 'run_commands'
2386f66f76d9c9ffbbcd02bfad9e0530683714d433bff8d70976cae6c4b8fc86
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als einen geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.
==================== ENDE NEUAUFBAU-LOG ====================
Neuaufbau der App fehlgeschlagen.

Überprüfen Ihres Domainnamens . . .

Verbindung zu yoursite erfolgreich.
Sie sollten wahrscheinlich alle nicht-Standard-Plugins entfernen und neu aufbauen.
Versuch, den bestehenden Container neu zu starten . . .

Starten des bestehenden Containers
+ /usr/bin/docker start app
Fehlerantwort vom Daemon: Treiber konnte die externe Konnektivität für den Endpunkt app (39c7d5a80e10058bc952825fccd073af0f2ff12857895aa1046a6615d879a5a0) nicht programmieren: Fehler beim Starten des Userland-Proxys: listen tcp 0.0.0.0:443: bind: Adresse bereits in Verwendung
Fehler: Starten der Container fehlgeschlagen: app
Neustart des Containers fehlgeschlagen.


==================== PLUGINS ====================
          - git clone github.com/discourse/docker_manager.git

Keine nicht-offiziellen Plugins erkannt.

Siehe thub.com/discourse/discourse/blob/master/lib/plugin/metadata.rb für die offizielle Liste.

========================================
**Discourse-Version auf myhost: NICHT GEFUNDEN**
**Discourse-Version auf localhost: NICHT GEFUNDEN**


==================== SPEICHERINFORMATION ====================
RAM (MB): 2041

              total        used        free      shared  buff/cache   available
Mem:           1993         144        1237           0         611        1677
Swap:          2047          76        1971

==================== PLATZPRÜFUNG ====================
---------- Betriebssystem-Platz ----------
Dateisystem      Größe  Belegt Verfügbar Nutzung% Eingehängt auf
/dev/vda1        49G   11G   38G  22% /

==================== PLATTENINFORMATION ====================
Platte /dev/vda: 50 GiB, 53687091200 Bytes, 104857600 Sektoren
Einheiten: Sektoren à 1 * 512 = 512 Bytes
Sektorgröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Datenträgertyp: gpt
Datenträgerkennung: 3980448C-AF15-4833-A022-C759F0D2D80A

Gerät      Start       Ende   Sektoren  Größe Typ
/dev/vda1  227328 104857566 104630239 49.9G Linux-Dateisystem
/dev/vda14   2048     10239      8192    4M BIOS-Boot
/dev/vda15  10240    227327    217088  106M Microsoft-Basisdaten

Partitionstabelleneinträge sind nicht in der Reihenfolge des Datenträgers.

==================== ENDE PLATTENINFORMATION ====================

Ich habe absolut keine Ahnung, was ich tun soll, aber die Site ist im Moment komplett zerstört. Ich habe die Links entfernt, da ich nur drei pro Beitrag verwenden darf, aber sie sind dort enthalten. Die Neuaufbauten funktionierten problemlos, BIS ich das Plugin entfernt habe, das ich an der völlig falschen Stelle platziert hatte. Danach lief alles nicht mehr. Es hatte ein paar Zeilen durcheinandergebracht, aber ich habe bestätigt, dass es behoben war. Ich bin völlig ratlos. Ich habe gerade versucht, das Setup erneut auszuführen und alle Einstellungen zu bestätigen; das lief gut, aber der Neuaufbau ist erneut fehlgeschlagen…

Okay, nachdem ich stundenlang versucht habe, Dinge neu zu starten und zu bearbeiten, habe ich schließlich

./launcher start app ausgeführt, und es läuft einwandfrei. Das Plugin ist installiert (obwohl ich dachte, ich hätte es entfernt?). Egal. Allerdings traue ich mich jetzt nicht, den Neuaufbau zu starten oder weitere Dinge zu installieren, da ich nicht genau weiß, was dies verursacht hat oder sogar, was behoben wurde. Jeder Hinweis wäre daher immer noch willkommen.

Aus deiner Beschreibung lässt sich nicht erkennen, was das Problem gewesen sein könnte. Wenn der letzte Neuaufbau funktioniert hat, wird der nächste sehr wahrscheinlich ebenfalls funktionieren.

Er hat anscheinend einfach ein altes Image mit ./launcher start app gestartet.

@Kartoon, du könntest es wahrscheinlich mit einem Neuaufbau versuchen. Falls es fehlschlägt, könntest du das letzte bekannte funktionierende Image über denselben Befehl wiederherstellen.

Entschuldigung, ich hatte eine kleine Notfallsituation und konnte dieses Thema nicht überprüfen.

Der Neuaufbau hat NICHT funktioniert, und ich habe es heute erneut versucht, aber auch dann nicht. Die Website funktioniert nach „./launcher start app

Es scheint, als hättest du einen Formatierungsfehler in deiner YAML-Datei.

Solche Fehler können schwer zu finden und zu erkennen sein. Es gibt Tools, die das prüfen.

Was ich normalerweise tue, wenn ich ein Plugin hinzufüge, ist, eine vorhandene Plugin-Zeile zu kopieren/einzufügen und die GitHub-URL zu bearbeiten. Auf diese Weise minimierst du die Wahrscheinlichkeit, dass du etwas kaputt machst.

Das habe ich angenommen, und am Anfang war es falsch. Ich habe mich jedoch auf http://www.yamllint.com/ bezogen, um die Fehler zu beheben, die dadurch entstanden sind, dass ich den Plugin-Text ursprünglich an den falschen Stellen platziert habe. Das Tool meldet nun, dass alles in Ordnung ist. Ich habe den Vorgang mehrfach überprüft (sowohl einzelne Teile als auch das Ganze), und es wurde bestätigt, dass alles korrekt ist. Es sei denn, die Website ist aus irgendeinem Grund unzuverlässig – was durchaus möglich ist, da ich mich nicht besonders gut damit auskenne.

Das ist das Ergebnis, das ich erhalte, wenn ich einen Neuaufbau versuche, und das hier kommt heraus, wenn ich discourse doctor ausführe (beides vor etwa fünf Minuten). Ich habe persönliche Informationen entfernt, aber im tatsächlichen Log steht alles dort und ist korrekt.

rebuild app

Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    Already up to date.
    I, [2020-07-23T22:58:14.812604 #1] INFO – : Loading --stdin

FAILED

NoMethodError: undefined method each' for nil:NilClass Location of failure: /pups/lib/pups/config.rb:99:in run_commands’
1a575aa2a169fcb4a9bbb0874c55d3fd01ee1e7368ff58e2099c9602f6c32109
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

discourse-doctor

DISCOURSE DOCTOR Thu Jul 23 22:59:22 UTC 2020
OS: Linux itsbx 4.15.0-111-generic #112-Ubuntu SMP Thu Jul 9 20:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=good
SMTP_ADDRESS=good
DEVELOPER_EMAILS=good
SMTP_PASSWORD=good
SMTP_PORT=587
SMTP_USER_NAME=good
LETSENCRYPT_ACCOUNT_EMAIL=good

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 19.03.8, build afacb8b7f0

DOCKER PROCESSES (docker ps -a)

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
343a1aa3c05c local_discourse/app “/sbin/boot” 7 days ago Exited (5) About a minute ago app

==================== SERIOUS PROBLEM!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    Already up to date.
    I, [2020-07-23T22:59:41.894064 #1] INFO – : Loading --stdin

FAILED

NoMethodError: undefined method each' for nil:NilClass Location of failure: /pups/lib/pups/config.rb:99:in run_commands’
439734a2cd69755d8351bbdadd9756cb573577d7f1b306aedaafa1c7d4bc29cf
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
==================== END REBUILD LOG ====================
Failed to rebuild app.

Checking your domain name . . .

Connection to website succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .

starting up existing container

  • /usr/bin/docker start app
    Error response from daemon: driver failed programming external connectivity on endpoint app (100c15324a128a2b007d8b89e29fe0f455585fd8c7d99855ef87bb4f17892b4b): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
    Error: failed to start containers: app
    Failed to restart the container.

==================== PLUGINS ====================
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub

No non-official plugins detected.

See discourse/lib/plugin/metadata.rb at main · discourse/discourse · GitHub for the official list.

========================================
Discourse version at website: NOT FOUND
Discourse version at localhost: NOT FOUND

==================== MEMORY INFORMATION ====================
RAM (MB): 2041

          total        used        free      shared  buff/cache   available

Mem: 1993 140 1310 0 542 1695
Swap: 2047 72 1975

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 49G 13G 37G 26% /

==================== DISK INFORMATION ====================
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3980448C-AF15-4833-A022-C759F0D2D80A

Device Start End Sectors Size Type
/dev/vda1 227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M Microsoft basic data

Partition table entries are not in disk order.

==================== END DISK INFORMATION ====================

Das, was mir sofort auffällt, ist die Meldung „serious problem, app not running“ (ernsthaftes Problem, App läuft nicht) sowie „discourse version at website and localhost not found“ (Discourse-Version auf Website und localhost nicht gefunden). Meine (uninformierte) Annahme ist, dass unabhängig davon, was diese Meldungen bedeuten, genau das das Problem ist.

Außerdem ist meine Website gerade abgestürzt, als ich den Neuaufbau ausgeführt habe. Ich habe dann den Befehl „start app“ verwendet, um sie wieder zum Laufen zu bringen.

Hmm. Nun, es sieht nicht nach einem Formatierungsproblem aus, aber ich kann nicht sagen, was es sonst sein könnte.

Wenn die app.yml Bedenken auslöst, ist es meiner Meinung nach am besten, mit einer sauberen app.yml-Datei neu zu beginnen:

rm /var/discourse/containers/app.yml
cd /var/discourse
cp samples/standalone.yml containers/app.yml
nano containers/app.yml

Anschließend können Sie neu erstellen, sobald alles geprüft ist.

Das hat perfekt funktioniert. Offensichtlich war das YML, als es gemeldet wurde, korrekt… war es aber nicht.

Dann hatte ich ein vorübergehendes Problem damit, dass E-Mails nicht versendet wurden. Als ich jedoch das neue YML noch einmal überprüft habe, merkte ich, dass ich die E-Mail falsch eingegeben hatte (ich vergesse immer, dass ich sie bei Mailgun auf @mg. gesetzt habe), sodass das innerhalb von fünf Minuten behoben war.

Ach, vielen Dank! Ich habe jetzt keine Angst mehr, dass jederzeit eine bevorstehende Zerstörung eintreten wird.