Discourse no se inicia

Últimamente he estado desplegando Discourse, pero he encontrado un problema que impide que se inicie.

El error es el siguiente:

FALLÓ
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development' falló con el retorno #<Process::Status: pid 1193 exit 15>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#spawn'
La ejecución falló con los parámetros {"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'"]}
El arranque falló con el código de salida 15
** EL ARRANQUE FALLÓ ** por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
7a849a20b51e8b8ff94c6ac3727c393aeb899e9b48b7d2313931232ceb9e6411

El archivo de configuración es el siguiente:

## esta es la plantilla del contenedor Docker independiente todo-en-uno de Discourse
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES EN LOS ESPACIOS EN BLANCO O LA ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/import/mysql-dep.template.yml"
  #- "templates/web.ratelimited.template.yml"
  ## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
  - "8000:80" # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.chinese"

  ## Establece db_shared_buffers en un máximo del 25% de la memoria total.
  ## se establecerá automáticamente durante el arranque según la RAM detectada, o puedes sobrescribirlo
  #db_shared_buffers: "256MB"

  ## puede mejorar el rendimiento de ordenamiento, pero aumenta el uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: latest)
  #version: latest

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

  ## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
  ## se establecerá automáticamente durante el arranque según los CPUs detectados, o puedes sobrescribirlo
  #UNICORN_WORKERS: 3

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Requerido. Discourse no funcionará con una dirección IP sin nombre de dominio.
  DISCOURSE_HOSTNAME: "forum.akarinliu.com"

  ## Descomenta si deseas que el contenedor se inicie con el mismo
  ## nombre de host (opción -h) que el especificado anteriormente (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que serán administradores y desarrolladores
  ## en el registro inicial, ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
  DISCOURSE_DEVELOPER_EMAILS: "forum.akarinliu.com"

  ## TODO: Configurar el servidor de correo
  ##       (usado para la validación de nuevas cuentas, notificaciones, resúmenes, etc.)
  ## requerido: nombre de host del servidor SMTP usado para enviar correos
  DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
  ## descomenta para establecer el puerto en algo distinto al predeterminado (25)
  DISCOURSE_SMTP_PORT: 587
  ## USUARIO / CONTRASEÑA requeridos si el proveedor SMTP necesita autenticación
  ## ADVERTENCIA: un '#' en la contraseña SMTP puede interpretarse mal; asegúrate de que esté dentro de comillas, por ejemplo:
  ##   DISCOURSE_SMTP_PASSWORD: "#contraseña#"
  DISCOURSE_SMTP_USER_NAME: noreply@akarinliu.com
  DISCOURSE_SMTP_PASSWORD: "***"
  ## descomenta para habilitar TLS implícito al momento de la conexión, probablemente necesario para usar el puerto 465
  #DISCOURSE_SMTP_FORCE_TLS: true
  ## descomenta para establecer el dominio HELO/EHLO, solo configurarlo si lo requiere el proveedor
  #DISCOURSE_SMTP_DOMAIN: discourse.ejemplo.com
  ## la dirección desde la cual se envían las notificaciones
  #DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.ejemplo.com
  ## descomenta para cambiar la verificación del certificado del servidor
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
  ## descomenta para sobrescribir el método de autenticación
  #DISCOURSE_SMTP_AUTHENTICATION: plain # plain|login|cram_md5
  # Opcional: bandera para omitir la configuración de correo electrónico
  #DISCOURSE_SKIP_EMAIL_SETUP: "1" # (opcional), descomenta para omitir la validación de la configuración de correo electrónico

  ## La dirección CDN http o https para esta instancia de Discourse (configurada para extraer)
  ## consulta https://meta.discourse.org/t/14857 para obtener detalles
  #DISCOURSE_CDN_URL: https://discourse-cdn.ejemplo.com

  ## La cuenta de ID de cuenta y la clave de licencia de Maxmind para búsquedas de direcciones IP
  ## consulta https://meta.discourse.org/t/-/173941 para obtener detalles
  DISCOURSE_MAXMIND_ACCOUNT_ID: 1083541
  DISCOURSE_MAXMIND_LICENSE_KEY: '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'

## El contenedor Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: ./shared
      guest: /shared
  - volume:
      host: ./log/var-log
      guest: /var/log

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Cualquier comando personalizado para ejecutar después de la compilación
run:
  - exec: echo "Inicio de comandos personalizados"
  ## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
  ## Después de recibir el primer correo de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
  #- exec: rails r "SiteSetting.notification_email='info@sinconfigurar.discourse.org'"
  - exec: echo "Fin de comandos personalizados"

(publicación eliminada por el autor)

Hazlo y compártelo :slight_smile:

Sí, por favor, pega al menos 100 líneas.

Si tu servidor está en China, lo más probable es que sea un problema de red. Por tus registros, parece que se ha quedado atascado descargando los paquetes gem. Tranquilo, a mí también me pasa; estos días no he podido hacer refactorizaciones debido a diversos problemas de red.

Es posible que esto se deba a que en China están celebrando las pruebas de acceso a la universidad (Gaokao) y la censura en internet es muy estricta en estos días. Te recomiendo esperar a que pase este periodo o usar un proxy.