Reconstrucción se congela al intentar detener el contenedor

Recibí hoy el primer mensaje Estás ejecutando una versión antigua de la imagen de Discourse. Las actualizaciones a través de la interfaz web están deshabilitadas hasta que ejecutes la imagen más reciente y creo que he dañado mi instalación.

Seguí las instrucciones, ejecutando cada comando con sudo porque mi proveedor de alojamiento no permite la creación de usuarios root.

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

Luego tuve que volver a ejecutar sudo git stash antes del pull debido a un error relacionado con conflictos.

Todo pareció avanzar correctamente (lo dejé más de una hora), pero luego mi sesión de Terminal se cerró (error de pipe roto). Para solucionarlo, configuré ClientAliveInterval en el servidor a 60, ya que estaba comentado, reinicié e intenté de nuevo.

Ahora, cuando se ejecuta el script de reconstrucción, se bloquea al intentar detener el contenedor de Docker.

Intenté evitar esto ejecutando docker kill <id> antes de ejecutar el script de reconstrucción, pero ocurre el mismo bloqueo (CPU al 100 % durante unos 15 minutos… luego nada durante horas).

Al reiniciar, el sitio sigue funcionando, pero no puedo actualizarlo (el actualizador de la interfaz web sigue indicando que estoy ejecutando una imagen antigua de Discourse).

Agradecería cualquier consejo.

Es bastante difícil de adivinar sin ver la salida de la compilación.

Podrías intentar usar tmux (o algo similar) para mantener la sesión abierta si te desconectas (puedes reconectar a la sesión con tmux attach).

Tal vez eches un vistazo a Actualización de PostgreSQL 13.

Gracias, Jay, creo que he encontrado el problema.

Mi proveedor de VPS, webdock.io (que, por cierto, es excelente), no admite ZFS porque lo utilizan a nivel de host; me han indicado que ZFS anidado no es viable. Tampoco recomendaron overlay2 para mi instalación y sugirieron que editara launcher para incluir el controlador de almacenamiento vfs, el cual no está presente por defecto.

171‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎ Storage Driver: (vfs|aufs|zfs|overlay2)
‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎‎‏‏‎ ‎‏‏‎ ‏‏‎‎‏⬆️

Sospecho que sudo git pull sobrescribió esto y luego intenté reconstruir con el controlador de almacenamiento incorrecto.

Acabo de revertir todo, volver a editar launcher antes de ejecutar rebuild app y ahora todo funciona correctamente.

cd /var/discourse
sudo git stash
sudo git pull
sudo nano launcher 

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ luego editar la línea 171 para incluir vfs

sudo ./launcher rebuild app

Hola @ajmuir,

Sé que resolviste tu problema hace más de un año, pero quería añadir mi granito de arena a esta discusión y también guiar a los nuevos usuarios que encuentren este hilo por el camino correcto.

Webdock (ahora) recomienda usar fuse-overlayfs como controlador de almacenamiento de Docker: How to change the Docker storage driver – Webdock

La razón es que vfs produce un alto uso del espacio en disco.

Pero usar fuse-overlayfs para Docker producirá una advertencia o un error en el lado del lanzador de Discourse, ya que no es un controlador recomendado.

Tengo instrucciones detalladas sobre cómo resolver esto en esta publicación de mi blog: Deploying Discourse on a Webdock server

También puedes hacerlo como lo hiciste tú, añadiendo el controlador instalado a la declaración egrep.

¿Y por qué dices que Webdock no permite la creación de usuarios root?
Simplemente puedes cambiar a root con sudo su y ejecutar los comandos de la guía de instalación de Discourse después de eso.