Recentemente ho tentato di distribuire Discourse, ma ho incontrato un problema che ne impedisce l’avvio.
L’errore è il seguente:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development' failed with return #<Process::Status: pid 1193 exit 15>
Location of failure: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#spawn'
exec failed with the params {"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 failed with exit code 15
** FAILED TO BOOTSTRAP ** scorri verso l'alto e cerca i messaggi di errore precedenti; potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.
7a849a20b51e8b8ff94c6ac3727c393aeb899e9b48b7d2313931232ceb9e6411
Il file di configurazione è il seguente:
## Questo è il template del container Docker Discourse standalone "all-in-one"
##
## Dopo aver apportato modifiche a questo file, DEVI eseguire il rebuild
## /var/discourse/launcher rebuild app
##
## FAI *MOLTA* ATTENZIONE DURANTE LA MODIFICA!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI NEGLI SPAZI O NELL'ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file quando necessario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/import/mysql-dep.template.yml"
#- "templates/web.ratelimited.template.yml"
## Scommenta queste due righe se desideri aggiungere Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
## Quali porte TCP/IP dovrebbe esporre questo container?
## Se desideri che Discourse condivida una porta con un altro server web come Apache o nginx,
## consulta https://meta.discourse.org/t/17247 per i dettagli
expose:
- "8000:80" # http
#- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.chinese"
## Imposta db_shared_buffers a un massimo del 25% della memoria totale.
## verrà impostato automaticamente dal bootstrap in base alla RAM rilevata, oppure puoi sovrascriverlo
#db_shared_buffers: "256MB"
## può migliorare le prestazioni di ordinamento, ma aumenta l'uso di memoria per connessione
#db_work_mem: "40MB"
## Quale revisione di Git dovrebbe utilizzare questo container? (predefinito: latest)
#version: latest
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Quante richieste web concorrenti sono supportate? Dipende dalla memoria e dai core della CPU.
## verrà impostato automaticamente dal bootstrap in base alle CPU rilevate, oppure puoi sovrascriverlo
#UNICORN_WORKERS: 3
## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
DISCOURSE_HOSTNAME: "forum.akarinliu.com"
## Scommenta se desideri che il container venga avviato con lo stesso
## hostname (opzione -h) specificato sopra (predefinito "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
## alla prima registrazione, ad esempio 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: "forum.akarinliu.com"
## TODO: Configura il server di posta
## (utilizzato per la convalida di nuovi account, notifiche, riassunti, ecc.)
## obbligatorio: hostname del server SMTP utilizzato per inviare la posta
DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
## scommenta per impostare la porta su qualcosa di diverso dal predefinito (25)
DISCOURSE_SMTP_PORT: 587
## USER_NAME / PASSWORD richiesti se il provider SMTP richiede l'autenticazione
## ATTENZIONE: un '#' nella password SMTP può essere interpretato erroneamente; assicurati che sia racchiuso tra virgolette, ad esempio:
## DISCOURSE_SMTP_PASSWORD: "#pass#ord"
DISCOURSE_SMTP_USER_NAME: noreply@akarinliu.com
DISCOURSE_SMTP_PASSWORD: "***"
## scommenta per abilitare il TLS implicito al momento della connessione, probabilmente necessario per utilizzare la porta 465
#DISCOURSE_SMTP_FORCE_TLS: true
## scommenta per impostare il dominio HELO/EHLO, impostalo solo se richiesto dal provider
#DISCOURSE_SMTP_DOMAIN: discourse.example.com
## l'indirizzo da cui vengono inviate le notifiche
#DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com
## scommenta per modificare la verifica del certificato del server
#DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
## scommenta per sovrascrivere il metodo di autenticazione
#DISCOURSE_SMTP_AUTHENTICATION: plain # plain|login|cram_md5
# Flag opzionale per saltare la configurazione della posta
#DISCOURSE_SKIP_EMAIL_SETUP: "1" # (opzionale), scommenta per saltare la convalida della configurazione della posta
## L'indirizzo CDN http o https per questa istanza di Discourse (configurato per l'acquisizione)
## consulta https://meta.discourse.org/t/14857 per i dettagli
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## L'ID account e la chiave di licenza Maxmind geolocation per le ricerche di indirizzi IP
## consulta https://meta.discourse.org/t/-/173941 per i dettagli
DISCOURSE_MAXMIND_ACCOUNT_ID: 1083541
DISCOURSE_MAXMIND_LICENSE_KEY: '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'
## Il container Docker è stateless; tutti i dati sono archiviati in /shared
volumes:
- volume:
host: ./shared
guest: /shared
- volume:
host: ./log/var-log
guest: /var/log
## I plugin vanno qui
## consulta https://meta.discourse.org/t/19157 per i dettagli
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Qualsiasi comando personalizzato da eseguire dopo la costruzione
run:
- exec: echo "Inizio dei comandi personalizzati"
## Se desideri impostare l'indirizzo email 'From' per la tua prima registrazione, scommenta e modifica:
## Dopo aver ricevuto la prima email di registrazione, rimetti il commento alla riga. Deve essere eseguito solo una volta.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "Fine dei comandi personalizzati"
(post cancellato dall’autore)
Fai così e condividici il risultato ![]()
Sì, per favore incolla almeno 100 righe.
Se il tuo server si trova in Cina, è molto probabile che si tratti di un problema di rete. Dai tuoi log sembra che il processo si sia bloccato durante il download del pacchetto gem; stai tranquillo, mi succede lo stesso. In questi giorni non riesco a procedere con la refattorizzazione a causa di vari problemi di rete.
Potrebbe essere dovuto al fatto che in Cina è in corso l’esame di ammissione all’università (Gaokao), periodo in cui il blocco della rete è particolarmente severo. Ti consiglio di riprovare dopo questo periodo o di utilizzare un proxy.