Fallo en la actualización... línea 115 columna 9 -e LANG=en_US.UTF-8

Hoy Discourse solicitó actualizaciones. Cuando lo hice, dijo que hiciera lo siguiente:

cd /var/discourse
git pull
./launcher rebuild app

Y luego arrojó:
(\u003cunknown\u003e): no se encontró la clave esperada al analizar un mapeo de bloques en la línea 115, columna 9 -e LANG=en_US.UTF-8
Aquí está mi app.yml

## esta es la plantilla de contenedor Docker de Discourse todo en uno y autónoma

##

## Después de realizar cambios en este archivo, DEBE reconstruir

## /var/discourse/launcher rebuild app

##

## ¡TENGA MUCHO CUIDADO AL EDITAR!

## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES DE ESPACIO EN BLANCO O ALINEACIÓN!

## visite 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/web.ratelimited.template.yml"

  - "templates/web.socketed.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:

#  - "8888:80"   # http

#  - "443:443" # https

params:

  db_default_text_search_config: "pg_catalog.english"

  ## Establezca db_shared_buffers a 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: "1024MB"

  ## 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

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.

  ## será establecido automáticamente por bootstrap según las CPU detectadas, o puede anularlo

  # UNICORN_WORKERS: 2

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse

  ## Requerido. Discourse no funcionará con un número IP simple.

  DISCOURSE_HOSTNAME: domain.com

  DISCOURSE_RELATIVE_URL_ROOT: /forums

  ## Descomente si desea que el contenedor se inicie con el mismo

  ## nombre de host (opción -h) 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, ejemplo 'user1@example.com,user2@example.com'

  DISCOURSE_DEVELOPER_EMAILS: 'hello@domain.com'

  ## 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.gmail.com

  DISCOURSE_SMTP_PORT: 587

  DISCOURSE_SMTP_USER_NAME: hello@domain.com

  DISCOURSE_SMTP_PASSWORD: "password"

  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, predeterminado true)

  DISCOURSE_SMTP_DOMAIN: domain.com

  DISCOURSE_NOTIFICATION_EMAIL: hello@domain.com

  ## Si agregó la plantilla Lets Encrypt, descomente a continuación para obtener un certificado SSL gratuito

  LETSENCRYPT_ACCOUNT_EMAIL: hello@domain.com

  ## La dirección CDN http o https para esta instancia de Discourse (configurada para tirar)

  ## consulte https://meta.discourse.org/t/14857 para obtener detalles

  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## La clave de dirección IP de geolocalización de Maxmind para la búsqueda de direcciones IP

  ## consulte https://meta.discourse.org/t/-/137387/23 para obtener detalles

  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456

## 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

          - git clone https://github.com/cfstras/discourse-konami.git

          #- git clone https://github.com/discourse/discourse-adplugin.git

          - git clone https://github.com/discourse/discourse-cakeday.git

          #- git clone https://github.com/discourse/discourse-docs.git

          - git clone https://github.com/discourse/discourse-sitemap.git

          - git clone https://github.com/discourse/discourse-solved.git

          #- git clone https://github.com/discourse/discourse-tooltips.git

          - git clone https://github.com/discourse/discourse-yearly-review.git

          - git clone https://github.com/merefield/discourse-word-cloud.git

## Cualquier comando personalizado para ejecutar después de la construcción

run:

    - exec: echo "Comienzo de comandos personalizados"

    - exec:

        cd: $home

        cmd:

          echo entrando en $home

          - mkdir -p public/forums

          #- cd public/forums

          - ln -s ../uploads

          - ln -s ../backups

          #- rm public/uploads

          #- rm public/backups

    - replace:

       global: true

       filename: /etc/nginx/conf.d/discourse.conf

       from: proxy_pass http://discourse;

       to: |

          rewrite ^/(.*)$ /forums/$1 break;

          proxy_pass http://discourse;

    - replace:

       filename: /etc/nginx/conf.d/discourse.conf

       from: etag off;

       to: |

          etag off;

          location /forums {

             rewrite ^/forums/?(.*)$ /$1;

          }

    - replace:

         filename: /etc/nginx/conf.d/discourse.conf

         from: $proxy_add_x_forwarded_for

         to: $http_your_original_ip_header

         global: true

    - exec: awk -F\\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Claves SSH autorizadas para este contenedor:"; } NF>=2 {print $NF;}'

    - exec: echo "Fin de comandos personalizados"

Creo que es la sección replace al final. Su indentación es diferente a la de arriba.

¿Has editado esto desde la última actualización?

No lo toqué pero había pasado una hora, así que lo publiqué. Incluso yamllint.com se quejaría.

Luego hice una búsqueda y reemplazo con expresiones regulares para eliminar todos los comentarios y de alguna manera funcionó. Se está compilando mientras escribo esto. Crucemos los dedos. Si esto sale mal, lamentablemente tendré que rendirme.

1 me gusta