Otro Discourse sin conexión "bootstrap falló con código de salida 5"

Hola Comunidad! Lamento que tengamos que reunirnos en estas circunstancias. Discourse está fuera de línea después de una actualización fallida.

La misma historia que.

Discourse offline after failed upgrade "bootstrap failed with exit code 5"

Intenté actualizar a v3.2.0.beta3

Todavía estoy en Ubuntu 16.04.

Afortunadamente, todavía tengo las imágenes de Docker anteriores (espero), pero no estoy seguro de qué hacer para restaurar los servicios. También uso DigitalOcean.

Error

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4' falló con el retorno #<Process::Status: pid 448 exit 5>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle config --local without \\\"development test\\\"'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
bootstrap falló con el código de salida 5
** FALLÓ EL ARRANQUE ** por favor desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
e9fead51a802981ae53f85f54dc8bf7bf9fae5c1dab3e06e0d77ea0930ffb261

¿Alguien puede ayudar?

Si bien tengo las imágenes antiguas, sí eliminé la imagen más reciente…

docker rmi 51421f454322 -f

Tengo los contenedores antiguos, pero cuando intento ejecutar ./launcher start app, parece preferir esa imagen eliminada.

root@hostname:/var/discourse# ./launcher start app
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml

starting up existing container
+ /usr/bin/docker start app
app

root@hostname:/var/discourse# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                      NAMES
afeec2777503        51421f454322        “/sbin/boot”        3 hours ago         Up 5 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
root@hostname:/var/discourse# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
discourse/base      2.0.20231218-0429   984f729957df        12 days ago         3.14GB

¿Hay alguna forma de proceder con el ID de imagen 984f729957df?

Lo más fácil es crear un nuevo droplet y copiar /var/discourse allí y reconstruir. Eso resolverá el problema en lugar de mitigarlo.

Hay un comando de “launcher” que te dará el comando de docker, lo cual podría ayudar. Puedes mirar el script de “launcher” para encontrar su nombre (pero estoy en mi teléfono).

1 me gusta

Parece que estás sugiriendo: ./launcher start-cmd app

Produce bastante, comenzando con + true run --shm-size=512m -d --restart=always...

Arriesgándome, probé:
docker + true run 984f729957df --shm-size=512m -d --restart=always ... sin éxito.

container_linux.go:247: starting container process caused "exec: \"--shm-size=512m\": executable file not found in $PATH"
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"--shm-size=512m\": executable file not found in $PATH".

Cualquier ayuda que puedas proporcionar es bienvenida. Gracias.

Sí. Algo así. No sé cómo hacerlo. Es posible que hayas eliminado la única imagen utilizable.

Mi recomendación sigue siendo crear una nueva instancia y copiar las cosas. Si fueras uno de mis clientes, eso es lo que haría.

Gracias por la sugerencia. No soy fanático de las migraciones no planificadas, pero parece que eso es lo que hay. Voy a suponer que te refieres a esto? Move a Discourse site to another VPS with rsync

¿Habrá instrucciones adicionales si hemos habilitado DO Spaces (almacenamiento S3)?

Dado el momento del año, será realmente difícil (léase: probablemente imposible) coordinar a los demás para los cambios necesarios a tiempo.

Preferiría revertir al estado en que funcionó por última vez para poder planificar una migración, en lugar de eso.

¿Alguien puede ayudar?

No, si siguió Configurar un proveedor de almacenamiento de objetos compatible con S3 para cargas. Si tiene la configuración en la base de datos, podría ser más complicado si intenta una restauración en lugar de rsync.

Moverse a una nueva instancia es de bajo riesgo, ya que puede simplemente volver a cambiar DNS a su sitio deshabilitado, pero si no tiene acceso a DNS y a DigitalOcean, estará atascado.

Parece que quizás se olvidó de citar algo con el comando de inicio. Parece que eso es lo que querría hacer.

Buena suerte

Configurar un proveedor de almacenamiento de objetos compatible con S3 para cargas

Configuré este servicio en 2016, así que desafortunadamente parece que tenemos la configuración en una base de datos. No hay parámetros de S3 en app.yml.

¿Hay alguna otra dificultad de la que deba tener conocimiento?

Si lo sincronizas con rsync, no deberías tener problemas. Luego puedes cambiar a la configuración recomendada. Podrías tener problemas si intentas restaurar la base de datos.

1 me gusta

Gracias de nuevo por tu ayuda. En cuanto al rsync, me preocupa un poco cómo las instrucciones dicen explícitamente:

  1. Configurar el nuevo servidor y sincronizar
  2. Detener el servicio en el servidor antiguo
  3. Sincronizar de nuevo pero con --delete

Eso suena volátil y, además, no es posible en mi escenario. ¿Será un problema? Creo que solo se trata de asegurarse de que todo lo que sucedió desde el último rsync en el foro se sincronice, pero podría estar equivocado.

Actualización:
Hemos vuelto a estar en línea con un Droplet completamente nuevo.

Me alegro de saber ahora que una migración es relativamente sencilla. Habría sido mucho mejor si la actualización no hubiera roto el antiguo droplet.

Sé que es un día festivo, pero sería genial si alguien del equipo de desarrollo pudiera dedicar tiempo a investigar esto. No creo que esto sea algo aislado. Me etiquetaron en otro hilo donde se ha estado recopilando información.

2 Me gusta