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
Die Konfigurationsdatei lautet wie folgt:
## Dies ist die All-in-One, eigenständige Discourse Docker-Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu aufbauen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEI DER BEARBEITUNG!
## YAML-DATEIEN SIND EXTREM EMPFINDLICH GEGENÜBER FEHLERN 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"
- "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 sollen von diesem Container freigegeben werden?
## Wenn Sie Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilen möchten,
## siehe 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 beim Bootstrapping basierend auf dem erkannten RAM festgelegt, oder Sie können überschreiben
#db_shared_buffers: "256MB"
## Kann die Sortierleistung verbessern, erhöht jedoch den Speicherverbrauch 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 Arbeitsspeicher und CPU-Kernen ab.
## Wird automatisch beim Bootstrapping basierend auf den erkannten CPUs festgelegt, oder Sie können überschreiben
#UNICORN_WORKERS: 3
## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren soll
## Erforderlich. Discourse funktioniert nicht mit einer bloßen IP-Nummer.
DISCOURSE_HOSTNAME: "forum.akarinliu.com"
## Kommentarzeichen entfernen, wenn der Container mit demselben
## Hostnamen (-h-Option) wie oben angegeben gestartet werden soll (Standard: „$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Durch Kommas getrennte Liste von E-Mail-Adressen, die bei der ersten Anmeldung zu Administratoren und Entwicklern werden
## Beispiel: 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: "forum.akarinliu.com"
## TODO: E-Mail-Server konfigurieren
## (verwendet für die Validierung neuer Konten, Benachrichtigungen, Zusammenfassungen usw.)
## erforderlich: Hostname des SMTP-E-Mail-Servers zum Senden von E-Mails
DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
## Kommentarzeichen entfernen, um den Port auf einen anderen als den Standardwert (25) festzulegen
DISCOURSE_SMTP_PORT: 587
## USER_NAME / PASSWORD erforderlich, wenn der SMTP-Anbieter eine Authentifizierung erfordert
## WARNUNG: Ein '#' im SMTP-Passwort kann falsch interpretiert werden; stellen Sie sicher, dass es in Anführungszeichen steht, z. B.:
## DISCOURSE_SMTP_PASSWORD: "#pass#ord"
DISCOURSE_SMTP_USER_NAME: noreply@akarinliu.com
DISCOURSE_SMTP_PASSWORD: "***"
## Kommentarzeichen entfernen, um implizites TLS beim Verbindungsaufbau zu aktivieren, wahrscheinlich erforderlich für die Verwendung von Port 465
#DISCOURSE_SMTP_FORCE_TLS: true
## Kommentarzeichen entfernen, um die HELO/EHLO-Domain festzulegen, nur setzen, wenn vom Anbieter erforderlich
#DISCOURSE_SMTP_DOMAIN: discourse.example.com
## Die Adresse, von der aus Benachrichtigungen gesendet werden
#DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com
## Kommentarzeichen entfernen, um die Serverzertifikatüberprüfung zu ändern
#DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
## Kommentarzeichen entfernen, um das Authentifizierungsverfahren zu überschreiben
#DISCOURSE_SMTP_AUTHENTICATION: plain # plain|login|cram_md5
# Optionales Flag zum Überspringen der E-Mail-Einrichtung
#DISCOURSE_SKIP_EMAIL_SETUP: "1" # (optional), Kommentarzeichen entfernen, 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-Konto-ID und Lizenzschlüssel für IP-Adressen-Lookups
## siehe https://meta.discourse.org/t/-/173941 für Details
DISCOURSE_MAXMIND_ACCOUNT_ID: 1111
DISCOURSE_MAXMIND_LICENSE_KEY: '***'
## 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 hinein
## 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
## Beliebige benutzerdefinierte Befehle, die nach dem Build ausgeführt werden sollen
run:
- exec: echo „Beginn der benutzerdefinierten Befehle"
## Wenn Sie die ,Von'-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, Kommentarzeichen entfernen und ändern:
## Nach Erhalt der ersten Anmelde-E-Mail das Kommentarzeichen wieder hinzufügen. Dies muss nur einmal ausgeführt werden.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo „Ende der benutzerdefinierten Befehle"
Mach das und teile es ![]()
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.