¿Cómo puedo reconstruir Discourse sin cambiar la versión?

Necesito actualizar la configuración de SMTP en app.yml, pero no quiero cambiar la versión de Discourse.

Cuando especifico una versión mediante la etiqueta version, la reconstrucción falla con el siguiente error. Actualmente estoy en la versión 2.4.0.beta8.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+ failed with return #<Process::Status: pid 336 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "find $home ! -user discourse -exec chown discourse {} \\+"]}
6269af00c2a4671a6fd2cb13a55bd475743205262bae7f483bf468e4dcacbeed
** FAILED TO BOOTSTRAP ** por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

1 me gusta

Esto surge todos los años y probablemente debería tener un tema de #cómo-hacerlo. Acabo de buscar por versión específica:

1 me gusta

Sí, la diferencia aquí es que estoy usando la etiqueta de versión en el YAML, pero obtengo un error al reconstruir.

1 me gusta

Si solo necesitas cambiar la configuración de SMTP, puedes:

./launcher destroy app 
./launcher start app
5 Me gusta

ok, así que leerá el archivo yml incluso si no se reconstruye, suena bien. Aunque eso solucionará mi problema urgente, sigo interesado en saber por qué la versión no funciona.

Dijiste que obtuviste “un error”. Eso significa que cometiste un error. Mi mejor suposición es un error de formato en YML, pero sin saber cuál fue el error, realmente no hay forma de saberlo.

Lo siento, “por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.”

3 Me gusta

Sí, puedo ver que la información que proporcioné en la publicación no fue lo suficientemente detallada. No creo que sea un error de formato, ya que el archivo YAML funciona correctamente sin la etiqueta de versión.

He realizado algunas pruebas adicionales y parece que el error que encontré no se produce en las versiones 10 y 11, pero sí se produce en las versiones 4 a 9.

Solo he encontrado dos errores en la salida de impresión, y creo que son esperados:

2020-02-22 10:42:33.410 UTC [62] postgres@postgres ERROR:  database "discourse" already exists

2020-02-22 10:42:33.533 UTC [73] postgres@discourse ERROR:  role "discourse" already exists

He revisado las notas de lanzamiento de la versión 10 y no he encontrado ninguna referencia a una corrección relacionada con esto.

Es bueno que esté corregido, y con tu solución alternativa para la configuración de SMTP (la probaré el lunes, no quiero alterar el servidor de producción durante el fin de semana), no hay una necesidad urgente por mi parte. Sin embargo, sería bueno saber si existe un error desconocido que las pruebas no detecten y que pueda reaparecer si fue “corregido” por accidente y no mediante un cambio dirigido. Supongo que quiero saber qué tan estable se puede esperar que sea la función de versión en el futuro.

Este es un volcado de la salida de una ejecución con la versión 2.4.0.beta9 como versión objetivo.
dump_disco_version_error.txt (127.5 KB)

Finalmente encontré tiempo para probarlo, pero no funcionó. Puedo ver que imprime la contraseña correcta al iniciar la aplicación, pero los correos electrónicos siguen fallando debido a acceso denegado.

Hmm. Estoy seguro de que antes funcionaba. He visto que algunas otras configuraciones no se guardan en el archivo de configuración. No estoy seguro de si se considera un error.

También podría ser que esté usando una versión antigua, por lo que podría funcionar o no en la versión más reciente. Solo quería actualizar con mis hallazgos.

Tuve motivo para volver a esto, parece que la versión funciona para ramas, pero no para etiquetas. Supongo que es porque el lanzador no descarga todas las etiquetas primero, pero no lo sé. ¿Existe alguna forma de editar los scripts del lanzador?

Finalmente he descubierto qué sale mal: el repositorio discourse_docker y el repositorio discourse dependen uno del otro, por lo que una versión específica de Discourse solo puede instalarse con una versión específica del repositorio discourse_docker. Desafortunadamente, no hay etiquetas en el repositorio discourse_docker, por lo que no es fácil determinar qué SHA debe usarse para instalar una versión específica. Al menos es agradable tener algo de cierre. Empezaré a tomar notas sobre esto para las instalaciones que realice en el futuro.

1 me gusta