Mi foro se cae cuando hago reconstrucción de la aplicación del lanzador

Hola,\nmi foro se cae cada vez que ejecuto ./launcher rebuild app.\nAdjunto captura de pantalla del error que me da.\n

1 me gusta

Si entiendo correctamente, el mensaje de error dice que hay un problema en la línea 9.

Intenta escribir este comando:

cat -n containers/app.yml

Eso imprimirá el contenido del archivo con números de línea, y podrás revisar la línea 9 en busca de errores de sintaxis.

Probablemente sería una buena idea ejecutar también ese comando chmod mencionado en la salida, aunque no esté relacionado con el error.

3 Me gusta

Bueno, nano -l es una forma mucho más fácil de encontrar la línea correcta y arreglarla de inmediato ;)\n\nSi no has cambiado mucho, app.yml en la línea 9 está justo antes de templates: — ¿podría haber algo extraño como un espacio en blanco adicional? \n\nPero una cosa que he aprendido sobre YAML es que puede haber un espacio en blanco en casi cualquier lugar, falta un espacio, falta una comilla o un tipo incorrecto, y el error apunta al lugar equivocado.\n\nYo diría que es más fácil eliminar app.yml y volver a configurar.

2 Me gusta

He eliminado esa línea 9 elementos por completo, pero todavía dice que la línea 9 es un error de sintaxis.

1 me gusta

¿Cómo lo elimino y lo reconstruyo?

1 me gusta

Primero haría una copia de seguridad, si hay algún contenido. Y después de eso:

cd /var/discourse
mv containers/app.yml .
./discourse-setup
1 me gusta

¿eso va a borrar los datos de mi foro? ¿como publicaciones y usuarios y todo eso?

1 me gusta

No. Pero por eso hiciste una copia de seguridad completa primero.

Pero también puedes probar esto:

1 me gusta

He intentado validar YAML y dice que todo está bien.

1 me gusta

Creo que es un error

1 me gusta

Algo es.

Pero puedes copiar y pegar tu app.yml aquí tal cual. Entonces alguien más sabio podría echarle un vistazo. Porque ahora nadie sabe lo que hay o no hay.

2 Me gusta

¿Puedes compartir tu app.yml completo sin información segura (contraseñas, etc.)?

1 me gusta

## esta es la plantilla de contenedor Docker de Discourse todo en uno e independiente
##
## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TENGA MUCHO CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON MUY, MUY SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!
## visite http://www.yamllint.com/ para validar este archivo según sea necesario
hooks:  after_code:    - exec:        cd: $home/plugins        cmd:          - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git          - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti
templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Descomente estas dos líneas si desea agregar Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

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

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Establezca db_shared_buffers en un máximo del 25% de la memoria total.
  ## será establecido automáticamente por bootstrap según la RAM detectada, o puede anularlo
  db_shared_buffers: "256MB"

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

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  #version: tests-passed
  ## Tamaño máximo de carga (predeterminado: 900m)
  upload_size: 900m

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

  ## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
  ## será establecido automáticamente por bootstrap según las CPU detectadas, o puede anularlo
  UNICORN_WORKERS: 4

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Requerido. Discourse no funcionará con un número IP simple.
  DISCOURSE_HOSTNAME:

  ## Descomente si desea que el contenedor se inicie con el mismo
  ## nombre de host (-h opción) que se especifica arriba (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, por ejemplo, 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: ''

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  # Se requieren la DIRECCIÓN SMTP, el nombre de usuario y la contraseña
  # ADVERTENCIA: ¡el carácter '#' en la contraseña SMTP puede causar problemas!
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: ###
  DISCOURSE_SMTP_PASSWORD: "##-07e2c238-419aaa92"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, predeterminado true)
  DISCOURSE_SMTP_DOMAIN:
  DISCOURSE_NOTIFICATION_EMAIL:

  ## Si agregó la plantilla Lets Encrypt, descomente a continuación para obtener un certificado SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

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

  ## La clave de licencia de MaxMind para la búsqueda de direcciones IP
  ## consulte https://meta.discourse.org/t/-/137387/23 para obtener detalles
  #DISCOURSE_MAXMIND_LICENSE_KEY: ##

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

## Los plugins van aquí
## consulte 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 construcción
run:
  - exec: echo "Comienzo de comandos personalizados"
  ## Si desea establecer la dirección de correo electrónico 'De' para su primer registro, descomente y cambie:
  ## Después de recibir el primer correo electrónico de registro, vuelva a comentar la línea. Solo necesita ejecutarse una vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin de comandos personalizados"

Creo que esto no debería ser el principio del archivo:
hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti

Y faltan dos líneas debajo de la línea LANG: en_US.UTF-8.

LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en

Quizás haya más que no he notado, pero aquí está el archivo predeterminado y puedes comparar.

La primera línea real que comienza con hooks: no puede ser correcta. Debería ser algo como

hooks:
  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake posts:rebake
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

Bueno, no exactamente así porque esto es mío, pero las líneas, intenciones, etc. deberían ser similares.

1 me gusta

Me superas :rofl:

¿Qué opinas? ¿Sería ./discourse-setup la forma más rápida y sencilla de arreglar ese desastre?