Discourse startet nicht

Ich habe kürzlich versucht, Discourse bereitzustellen, bin jedoch auf ein Problem gestoßen, das den Start verhindert.

Fehler wie folgt:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development' fehlgeschlagen mit Rückgabewert #<Process::Status: pid 1193 exit 15>
Fehlerort: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#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 config unset deployment'", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development'"]}
Bootstrap fehlgeschlagen mit Exit-Code 15
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte nach oben scrollen und nach früheren Fehlermeldungen suchen; es kann mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.
7a849a20b51e8b8ff94c6ac3727c393aeb899e9b48b7d2313931232ceb9e6411

Konfigurationsdatei wie folgt:

## Dies ist die All-in-One, eigenständige Discourse Docker-Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEI DER BEARBEITUNG!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGENÜBER FEHLERN IN 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"
  - "templates/import/mysql-dep.template.yml"
  #- "templates/web.ratelimited.template.yml"
  ## Entfernen Sie das Kommentarzeichen bei diesen beiden Zeilen, wenn Sie Lets Encrypt (https) hinzufügen möchten
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## Welche TCP/IP-Ports soll dieser Container offenlegen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## sehen Sie https://meta.discourse.org/t/17247 für Details
expose:
  - "8000:80" # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.chinese"

  ## Setzen Sie db_shared_buffers auf maximal 25 % des gesamten Arbeitsspeichers.
  ## Wird automatisch vom Bootstrap basierend auf dem erkannten RAM festgelegt, oder Sie können es überschreiben
  #db_shared_buffers: "256MB"

  ## Kann die Sortierleistung verbessern, erhöht jedoch die Speichernutzung pro Verbindung
  #db_work_mem: "40MB"

  ## Welche Git-Revision soll dieser Container verwenden? (Standard: latest)
  #version: latest

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
  ## Wird automatisch vom Bootstrap basierend auf den erkannten CPUs festgelegt, oder Sie können es überschreiben
  #UNICORN_WORKERS: 3

  ## TODO: Der Domainname, auf den diese Discourse-Instanz antwortet
  ## Erforderlich. Discourse funktioniert nicht mit einer reinen IP-Nummer.
  DISCOURSE_HOSTNAME: "forum.akarinliu.com"

  ## Entfernen Sie das Kommentarzeichen, wenn Sie möchten, dass der Container mit demselben
  ## Hostnamen (-h-Option) wie oben angegeben gestartet wird (Standard: "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste der durch Komma getrennten E-Mails, die bei der ersten Anmeldung zu Administratoren und Entwicklern werden
  ## Beispiel: 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: "forum.akarinliu.com"

  ## TODO: Konfigurieren Sie den Mailserver
  ##       (verwendet für die Validierung neuer Konten, Benachrichtigungen, Zusammenfassungen usw.)
  ## erforderlich: Hostname des SMTP-Mail-Servers, der zum Senden von E-Mails verwendet wird
  DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
  ## Entfernen Sie das Kommentarzeichen, um den Port auf etwas anderes als den Standard (25) festzulegen
  DISCOURSE_SMTP_PORT: 587
  ## BENUTZERNAME / PASSWORT erforderlich, wenn der SMTP-Anbieter eine Authentifizierung benötigt
  ## WARNUNG: Ein '#' im SMTP-Passwort kann falsch interpretiert werden; stellen Sie sicher, dass es innerhalb von Anführungszeichen steht, z. B.:
  ##   DISCOURSE_SMTP_PASSWORD: "#pass#ord"
  DISCOURSE_SMTP_USER_NAME: noreply@akarinliu.com
  DISCOURSE_SMTP_PASSWORD: "***"
  ## Entfernen Sie das Kommentarzeichen, um implizites TLS beim Verbinden zu aktivieren, wahrscheinlich erforderlich für die Verwendung von Port 465
  #DISCOURSE_SMTP_FORCE_TLS: true
  ## Entfernen Sie das Kommentarzeichen, um die HELO/EHLO-Domain festzulegen, nur setzen, wenn vom Anbieter erforderlich
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com
  ## Die Adresse, von der Benachrichtigungen gesendet werden
  #DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com
  ## Entfernen Sie das Kommentarzeichen, um die Serverzertifikatsüberprüfung zu ändern
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
  ## Entfernen Sie das Kommentarzeichen, um die Authentifizierungsmethode zu überschreiben
  #DISCOURSE_SMTP_AUTHENTICATION: plain # plain|login|cram_md5
  # Optionale E-Mail-Einrichtung überspringen
  #DISCOURSE_SKIP_EMAIL_SETUP: "1" # (optional), entfernen Sie das Kommentarzeichen, um die E-Mail-Einrichtungsvalidierung zu überspringen

  ## Die http- oder https-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## Die Maxmind-Geolokalisierungs-IP-Konten-ID und der Lizenzschlüssel für IP-Adressen-Lookups
  ## siehe https://meta.discourse.org/t/-/173941 für Details
  DISCOURSE_MAXMIND_ACCOUNT_ID: 1083541
  DISCOURSE_MAXMIND_LICENSE_KEY: '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'

## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: ./shared
      guest: /shared
  - volume:
      host: ./log/var-log
      guest: /var/log

## Plugins gehen hier
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Alle benutzerdefinierten Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn Sie die ,From'-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, entfernen Sie das Kommentarzeichen und ändern Sie:
  ## Nach Erhalt der ersten Anmelde-E-Mail kommentieren Sie die Zeile erneut aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"

(Beitrag vom Autor gelöscht)

Mach das und teile es :slight_smile:

Ja – bitte fügt mindestens 100 Zeilen ein.

Wenn dein Server in China steht, liegt es höchstwahrscheinlich an einem Netzwerkproblem. Laut deinen Logs hängt es beim Herunterladen des gem-Pakets fest. Keine Sorge, mir geht es genauso; in den letzten Tagen konnte ich wegen verschiedener Netzwerkprobleme keine Refaktorierung vornehmen.

Möglicherweise ist das auf die anstehenden nationalen Prüfungen (Gaokao) in China zurückzuführen, die derzeit eine sehr strenge Netzwerkzensur mit sich bringen. Es wird empfohlen, es nach dieser Phase erneut zu versuchen oder einen Proxy zu nutzen.