Nichts wird beim Launcher-Neuaufbau angezeigt

Ich versuche, dem Leitfaden für die Unterstützung des MySQL-Gems im App-Container über das Tutorial zu folgen: Use an import script that requires MySQL - #4 by pfaffman

Wenn ich jedoch Folgendes ausführe, bleibt der Prozess einfach hängen:

> ./launcher stop app
> ./launcher rebuild import

image

Ich muss den Prozess mit CTRL+C abbrechen.

Hinweis: Ich habe mehr als ein paar Stunden gewartet, um eine Reaktion zu erhalten, aber nichts passiert.

Wenn ich die Docker-Container inspiziere, wird ein neuer (beschädigter) gestoppter Container angezeigt:

image

Ich bin mir nicht sicher, was ich falsch mache, was zu diesem Verhalten führt.

Inhalt meiner Datei containers/import.yml (der unveränderte Teil wurde entfernt):

Der Server wird bei DigitalOcean gehostet. Wenn ich den Docker-Dienst neu starte, wird der ursprüngliche laufende App-Container wiederhergestellt.

image

P.S.: ./launcher rebuild app funktioniert hingegen einwandfrei.

Vielleicht solltest du zuerst ./launcher stop app; ausführen, bevor du versuchst, import zu bauen?

EDIT:

Verdammt.

Ja, offensichtlich führe ich rebuild nach dem stop-Befehl aus. Ich werde meine Frage bearbeiten.

OK, ich habe es herausgefunden. Nachdem ich den Container gestoppt habe

> ./launcher stop app

habe ich den Container auch entfernt (docker rm app) und versucht, ihn danach neu aufzubauen. Diesmal lief der Prozess weiter.

Jetzt, wo ich den Punkt erreicht habe, an dem die Vorlage mysql-dep verwendet wird, tritt folgender Fehler auf.

...
Setting up libgmp-dev:amd64 (2:6.1.2+dfsg-4) ...
Setting up nettle-dev:amd64 (3.4.1-1) ...
Setting up libgnutls28-dev:amd64 (3.6.7-4+deb10u2) ...
Setting up libmariadb-dev (1:10.3.22-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...

I, [2020-02-27T16:51:33.937186 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'
[DEPRECATED] Die Option `--path` ist veraltet, da sie darauf angewiesen ist, über mehrere Bundler-Aufrufe hinweg gespeichert zu werden, was Bundler in zukünftigen Versionen nicht mehr tun wird. Bitte verwenden Sie stattdessen `bundle config set path 'vendor/bundle'` und nutzen Sie diese Option nicht weiter.
[DEPRECATED] Die Option `--without` ist veraltet, da sie darauf angewiesen ist, über mehrere Bundler-Aufrufe hinweg gespeichert zu werden, was Bundler in zukünftigen Versionen nicht mehr tun wird. Bitte verwenden Sie stattdessen `bundle config set without 'test development'` und nutzen Sie diese Option nicht weiter.
Sie versuchen, im Bereitstellungsmodus zu installieren, nachdem Sie Ihre Gemfile geändert haben. Führen Sie `bundle install` an einem anderen Ort aus und fügen Sie die aktualisierte Gemfile.lock der Versionskontrolle hinzu.

Wenn dies eine Entwicklungsmaschine ist, entfernen Sie die Gemfile-Freeze in /var/www/discourse, indem Sie `bundle config unset deployment` ausführen.

Die Abhängigkeiten in Ihrer Gemfile haben sich geändert.

Sie haben zur Gemfile hinzugefügt:
* mysql2
I, [2020-02-27T16:51:34.670930 #1]  INFO -- : 
I, [2020-02-27T16:51:34.672542 #1]  INFO -- : Asynchrone Prozesse werden beendet
I, [2020-02-27T16:51:34.673101 #1]  INFO -- : INT wird an HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49 gesendet
I, [2020-02-27T16:51:34.673593 #1]  INFO -- : TERM wird an exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166 gesendet
2020-02-27 16:51:34.674 UTC [49] LOG:  Schneller Herunterfahrungsantrag empfangen
166:signal-handler (1582822294) SIGTERM empfangen, Herunterfahren wird geplant...
2020-02-27 16:51:34.682 UTC [49] LOG:  Alle aktiven Transaktionen werden abgebrochen
166:M 27 Feb 2020 16:51:34.693 # Benutzer angefordertes Herunterfahren...
166:M 27 Feb 2020 16:51:34.695 * Letztes RDB-Snapshot vor dem Beenden wird gespeichert.
2020-02-27 16:51:34.698 UTC [49] LOG:  Worker-Prozess: Logical Replication Launcher (PID 58) beendet mit Exit-Code 1
2020-02-27 16:51:34.701 UTC [53] LOG:  Herunterfahren
166:M 27 Feb 2020 16:51:34.741 * DB auf Festplatte gespeichert
166:M 27 Feb 2020 16:51:34.742 # Redis ist jetzt bereit zum Beenden, tschüss...
2020-02-27 16:51:34.786 UTC [49] LOG:  Datenbanksystem heruntergefahren


FEHLGESCHLAGEN
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development' fehlgeschlagen mit Rückgabewert #<Process::Status: pid 970 exit 16>
Fehlerort: /pups/lib/pups/exec_command.rb:112:in `spawn'
Ausführung fehlgeschlagen mit den Parametern {"cd"=>"$home", "cmd"=>["echo \"gem 'mysql2'\" >> Gemfile", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmariadb-dev", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}
75b27d60e1dc3a4b5d76bc75f2874ebf405fe29edfebec3cb809233f7b01ec48
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.

Hat jemand eine Ahnung, was dieser Fehler bedeutet?

Ich habe ähnliche Probleme. Das scheint dasselbe zu sein wie Failed to bootstrap using import template.

Ich wollte eigentlich gar nicht versuchen, diesen Container zu aktualisieren, da ich das gesehen hatte, aber ich habe es trotzdem wegen eines anderen seltsamen Fehlers versucht. . .

EDIT: Ich habe vor der Zeile

 su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'

die folgende Zeile in die Vorlage eingefügt:

su discourse -c 'bundle config unset deployment'

Und es funktioniert. (Aber leider hat es mein unrelated Problem nicht gelöst).

Ich habe diese Vorlage letzte Woche buchstäblich verwendet und hatte keine Probleme damit. Ziemlich seltsam, aber es lohnt sich, nächste Woche einen Blick darauf zu werfen. Ich werde sie auf meine Liste setzen.

Ich auch! Aber ich vermute, es gibt etwas für Upgrades?

Zusätzlich zum Kommentar musste ich auch die Voraussetzungen für den Launcher überspringen:

> ./launcher rebuild import --skip-prereqs

Und nach dem Vorschlag von @pfaffman:

wurde das Image erfolgreich erstellt. :white_check_mark:

Sieht so aus, als wäre das hier gelöst – @pfaffman @rahilqf, könntet ihr das bestätigen?

Sieht so aus. Vielen Dank!

Wenn es nur eine Vorlage gäbe, die php-serialize hinzufügt…