Kann den phpBB-Import-Container auf einer brandneuen Discourse-Installation nicht erstellen

Ich habe ein brandneues Discourse installiert. Alles funktioniert. Ich kann das erste Konto erstellen, E-Mails empfangen, mich anmelden usw.

Ich muss ein phpbb3-Forum importieren. Ich beabsichtige, das Import-Dienstprogramm zu verwenden, um meine Discourse mit historischen Daten zu füllen, und habe daher die Anweisungen unter Migrate a phpBB3 forum to Discourse befolgt.

Ich habe den Kopierbefehl ausgeführt

cp containers/app.yml containers/import.yml

und die Datei bearbeitet, um die Template-Zeile hinzuzufügen. Meine Website verwendet LetsEncrypt für das TLS-Zertifikat, daher sind die Zeilen für die SSL- und LetsEncrypt-Templates auskommentiert – dies unterscheidet sich geringfügig vom Beispiel in den Anweisungen. Ich habe dies jedoch mit auskommentierten und nicht auskommentierten Zeilen versucht, daher glaube ich nicht, dass diese Zeilen eine Rolle spielen.

Ich fuhr mit den restlichen Anweisungen fort und führte schließlich den Befehl zum Neuerstellen des Containers aus. Der Befehl wird nicht erfolgreich abgeschlossen.

94:M 23 Jul 2024 20:14:40.761 * Speichern des finalen RDB-Snapshots vor dem Beenden.
94:M 23 Jul 2024 20:14:40.855 * DB auf Festplatte gespeichert
94:M 23 Jul 2024 20:14:40.857 # Redis ist nun bereit zum Beenden, auf Wiedersehen...
2024-07-23 20:14:41.235 UTC [32] LOG: Datenbank-System wird heruntergefahren.


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/service/unicorn/run
Ort des Fehlers: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace fehlgeschlagen mit den Parametern {"tag"=>"precompile", "filename"=>"/etc/service/unicorn/run", "from"=>"PRECOMPILE_ON_BOOT=1", "to"=>"PRECOMPILE_ON_BOOT=0"}
bootstrap fehlgeschlagen mit Exit-Code 1
** 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.
6f1a0b5cd0cfc8ed542938b7439aeff0a21a0135c58617fa5a05e68fd6fcc70d

Ich bin mir nicht sicher, wie ich dieses Problem beheben soll. Ich habe mehrmals an verschiedenen Orten installiert. Nach allem, was ich gelesen habe, sollte dieser Schritt zum Neuerstellen (der nicht der eigentliche Datenimport ist) einfach funktionieren. Ist dies möglicherweise ein Problem mit der neuesten Discourse-Version? Ich habe den Import vor einigen Monaten erfolgreich von Anfang bis Ende als Test durchgeführt.

Ja.

Sie müssen mehr von der Ausgabe teilen oder verstehen.

1 „Gefällt mir“

Um einen gemeinsamen Ausgangspunkt zu schaffen, habe ich meinen VPS (Ubuntu 22.04) neu installiert, apt update && apt upgrade ausgeführt und dann mit dem Standard-Discourse-Installationsprozess begonnen.

Falls diese Information relevant ist, habe ich beim Eingeben von Informationen während des ersten ./discourse-setup einen Fehler gemacht, daher habe ich Strg+C gedrückt und dann ./discourse-setup erneut ausgeführt. Die zweite Ausführung von ./discourse-setup zieht ein neues discourse/base, wie gezeigt…

root@discourse:/var/discourse# ./discourse-setup 
Die Konfigurationsdatei containers/app.yml existiert bereits!

. . . rekonfigurieren . . .


Speichere alte Datei als app.yml.2024-07-29-151604.bak
Stoppe bestehenden Container in 5 Sekunden oder Strg+C zum Abbrechen.
x86_64 Arch erkannt.

WARNUNG: Wir werden nun mit dem Herunterladen des Discourse-Basis-Images beginnen
Dieser Vorgang kann je nach Netzwerkgeschwindigkeit einige Minuten bis zu einer Stunde dauern
Bitte haben Sie Geduld

2.0.20240708-0023: Herunterladen von discourse/base
76956b537f14: Pull complete 
c5ffad89ad3c: Pull complete 
71c31a50a587: Pull complete 
c1a1234dcb61: Pull complete 
9980a27afc32: Pull complete 
4f4fb700ef54: Pull complete 
304b565c70c9: Pull complete 
8ad811162d08: Pull complete 
2c324dce526d: Pull complete 
52d141c2b1c8: Pull complete 
4c08fdcd145a: Pull complete 
1b6035ac25c0: Pull complete 
9208d0f90623: Pull complete 
513dccf6f63f: Pull complete 
e0b141854963: Pull complete 
4476d7dd9441: Pull complete 
0fad77941078: Pull complete 
46c34476ea19: Pull complete 
ff0b86516349: Pull complete 
c33170d09c8b: Pull complete 
ed4a793ffe51: Pull complete 
3a7b2554e089: Pull complete 
3ad8a6408839: Pull complete 
e7c58bcc7f57: Pull complete 
59b2407fe431: Pull complete 
315160f4d4f8: Pull complete 
ad328ba96976: Pull complete 
825dca2e642e: Pull complete 
9fbd8c908047: Pull complete 
b1d30330e969: Pull complete 
8c76c65bb8e8: Pull complete 
9279965667b5: Pull complete 
a0ae3eb4d088: Pull complete 
819fb509ef8b: Pull complete 
c962935d47d4: Pull complete 
63b444b5bd1e: Pull complete 
7efa1c09faf6: Pull complete 
46c4327ce462: Pull complete 
b095ebe7bdf6: Pull complete 
3aa16a533cab: Pull complete 
41419e4f1948: Pull complete 
589837814d9a: Pull complete 
bd025ad1b844: Pull complete 
24762ff7528f: Pull complete 
fe364253c657: Pull complete 
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Status: Heruntergeladenes neueres Image für discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
App wurde nicht gestartet!
./discourse-doctor kann bei der Diagnose des Problems helfen.

3 GB Speicher und 2 physische CPU-Kerne gefunden
db_shared_buffers = 768MB gesetzt
UNICORN_WORKERS = 4 gesetzt
containers/app.yml Speicherparameter aktualisiert.

Die Discourse-Installation wurde fortgesetzt und erfolgreich abgeschlossen. Ich konnte das erste Konto erstellen und mich anmelden.

I, [2024-07-29T15:42:21.624379 #1]  INFO -- : Replacing location @discourse { with location @discourse {
add_header Strict-Transport-Security 'max-age=31536000'; # Zertifikat für ein Jahr merken und automatisch zu HTTPS für diese Domain in /etc/nginx/conf.d/discourse.conf verbinden
I, [2024-07-29T15:42:21.627858 #1]  INFO -- : > echo "Beginning of custom commands"
I, [2024-07-29T15:42:21.634022 #1]  INFO -- : Beginning of custom commands

I, [2024-07-29T15:42:21.637436 #1]  INFO -- : > echo "End of custom commands"
I, [2024-07-29T15:42:21.642766 #1]  INFO -- : End of custom commands

I, [2024-07-29T15:42:21.648034 #1]  INFO -- : Terminating async processes
I, [2024-07-29T15:42:21.649479 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 57
2024-07-29 15:42:21.651 UTC [57] LOG:  received fast shutdown request
I, [2024-07-29T15:42:21.652067 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 120
120:signal-handler (1722267741) Received SIGTERM scheduling shutdown...
2024-07-29 15:42:21.658 UTC [57] LOG:  aborting any active transactions
120:M 29 Jul 2024 15:42:21.667 # User requested shutdown...
120:M 29 Jul 2024 15:42:21.668 * Saving the final RDB snapshot before exiting.
2024-07-29 15:42:21.682 UTC [57] LOG:  background worker "logical replication launcher" (PID 72) exited with exit code 1
120:M 29 Jul 2024 15:42:21.682 * DB saved on disk
120:M 29 Jul 2024 15:42:21.683 # Redis is now ready to exit, bye bye...
2024-07-29 15:42:21.685 UTC [67] LOG:  shutting down
2024-07-29 15:42:21.806 UTC [57] LOG:  database system is shut down
sha256:6a6d6a8ea3559ad031a84fd48a164686e9440d7e857cb39619c2baba84a4b966
2b8eddd7b72415507d10cc404c40459c19c7ad3e025cb7bb69bcddb3c98b0197

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=discourse3.greenbullfrog.com -e DISCOURSE_DEVELOPER_EMAILS=discourse-admin@greenbullfrog.com -e DISCOURSE_SMTP_ADDRESS=box.greenbullfrog.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=discourse@greenbullfrog.com -e DISCOURSE_SMTP_PASSWORD=lAtDyjbyqztzhrG -e DISCOURSE_SMTP_DOMAIN=discourse3.greenbullfrog.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@discourse3.greenbullfrog.com -e LETSENCRYPT_ACCOUNT_EMAIL=letsencrypt@greenbullfrog.com -h discourse-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:f9:8c:dd:3d:63 local_discourse/app /sbin/boot
a78541042858ed6a4dd739bb7c8243a50a4064f595fdf968c22c8b63afb68979
root@discourse:/var/discourse# 

Als Nächstes habe ich den unter Migrate a phpBB3 forum to Discourse beschriebenen Prozess begonnen.

Hier ist der Anfang meiner import.yml-Datei…

root@discourse:/var/discourse# head -23 containers/import.yml 
## dies ist die All-in-One, Standalone Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGEN FEHLER BEI LEERZEICHEN ODER AUSRICHTUNG!
## besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Kommentarzeile für die Aktivierung des IPv6-Listeners entfernen
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Kommentarzeilen für die Aktivierung von Lets Encrypt (https) entfernen
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/import/phpbb3.template.yml"

## welche TCP/IP-Ports soll dieser Container bereitstellen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
root@discourse:/var/discourse# 

Das Problem tritt beim Ausführen des Befehls /var/discourse/launcher rebuild import auf. Aufgrund der Länge ist es nicht möglich, das Protokoll dieses Befehls zu posten. Sie können es jedoch von diesem NextCloud-Link herunterladen…

@gerhard, das könnte noch in deinen Zuständigkeitsbereich fallen.

Ich denke, das Problem ist, dass die phpbb3-Vorlage /etc/service/unicorn entfernt und dann die Web-Vorlage versucht, diese Datei zu ändern.
Das Einfachste wäre vielleicht, diese Zeilen aus web.template.yml zu löschen

  - replace:
      tag: precompile
      filename: /etc/service/unicorn/run
      from: PRECOMPILE_ON_BOOT=1
      to: "PRECOMPILE_ON_BOOT=0"

Aber das solltest du tun, nachdem du den ursprünglichen Container erstellt hast und dann so etwas wie

git checkout templates/web.template.yml

bevor du einen weiteren Rebuild durchführst.

1 „Gefällt mir“

Vielen Dank für diese Anweisungen, @pfaffman .

Leider habe ich den Wiederaufbau laufen lassen und bin zu einer getrennten SSH-Sitzung zurückgekehrt, sodass ich nicht die gesamte Build-Ausgabe erfasst habe. Der Wiederaufbau hat ein Docker-Image erstellt und den Container gestartet, daher war ich einigermaßen zufrieden, dass er normal beendet wurde.

Ich habe meine phpbb3-Daten an den richtigen Stellen für einen lokalen Import abgelegt und den Befehl zum Starten ausgegeben. Der Import läuft jetzt, wird aber einige Zeit dauern, bis er abgeschlossen ist. Ich werde morgen mit einem Ergebnis antworten.

1 „Gefällt mir“

Der Import wurde abgeschlossen und scheint die meisten Daten migriert zu haben. Einige phpBB-Benutzerkonten haben anscheinend E-Mail-Konten, die Discourse stören. Ich glaube, es könnte ein Leerzeichen am Ende sein. Ich versuche, aufzuräumen, bevor ich das gesamte Verfahren erneut ausführe.

Danke für die Hilfe. Ich gehe davon aus, dass es eine Korrektur für das Import-Dienstprogramm geben wird, das ansonsten für die aktuelle Version von Discourse nicht erstellt werden kann. Ich vermute, dass viele Leute nicht über die technischen Fähigkeiten verfügen, um sich mit dem Problem zu befassen, und einfach aufgeben würden, wenn sie auf den Fehler stoßen. Das würde zu weniger Discourse-Communities führen und historische Diskussionen würden auf aufgegebenen oder gelöschten phpBB-Seiten verloren gehen.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.