Discourse non si avvia

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 :slight_smile:

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.