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
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).
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.
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.
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.
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.
Gracias de nuevo por tu ayuda. En cuanto al rsync, me preocupa un poco cómo las instrucciones dicen explícitamente:
Configurar el nuevo servidor y sincronizar
Detener el servicio en el servidor antiguo
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.