He estado usando Discourse durante varios años. Configuro una nueva instancia cada 6 meses. Mi configuración incluye docker y un proxy basado en nginx, por lo que quizás sea un poco poco estándar. Por esta razón, no estoy usando discourse-setup.
Cada 6 meses, cuando repito este proceso, después de volver a clonar una copia nueva de discourse desde su git y ejecutar ./launcher bootstrap app, el contenedor falla al iniciarse. El registro muestra:
anacron: Can't chdir to /var/spool/anacron: No such file or directory
run-parts: /etc/runit/1.d/anacron exited with return code 1
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
anacron: Can't chdir to /var/spool/anacron: No such file or directory
ad infinitum.
Luego, normalmente realizo una serie de pasos para reiniciar, eliminar complementos, volver a agregarlos, etc., hasta que finalmente funciona, sin llegar a saber qué fue lo que finalmente lo hizo funcionar. 6 meses después, sucede lo mismo. Trabajo solo para arreglarlo, y no está claro cuál de los muchos pasos que doy en ese momento finalmente lo hizo funcionar.
Esta vez, sin embargo, creo que finalmente encontré el problema, y es este: aparentemente, ./launcher start app reinicia instancias de contenedores antiguas llamadas app, incluso cuando Discourse ha sido reclonado y reinicializado.
El paso que falta es docker remove app. En resumen:
./launcher stop app
docker remove app
... ahora volver a clonar, reiniciar e iniciar el lanzador de aplicaciones funciona
Mi error fue esperar que después de ejecutar ./launcher bootstrap app, el siguiente ./launcher start app iniciaría la nueva imagen del contenedor, pero este no parece ser el caso. Naturalmente, las cosas se descontrolan con la antigua, ya que la ruta /var/discourse/shared ha sido reinicializada.
Dejo esto aquí en caso de que otros busquen los mismos mensajes de error de registro.
Como posible mejora, sería bueno que el contenedor detectara que su directorio /var/discourse/shared ha cambiado.