¿La imagen de Docker discourse/discourse se considera segura y lista para producción?

¡Hola!
Me registré solo para darles muchas gracias a todos por su ayuda, especialmente a @featheredtoast.
Casi logré que funcionara, pero el envío de correos no funcionaba.
Supongo que fue porque uso Caddy como proxy inverso.

Ahora he vuelto a usar Discourse por separado de todos los demás servicios en mi configuración de Docker Compose.

¿Saben cómo podría hacerlo funcionar con Caddy? Supongo que debo configurarlo para que use un ejemplo con socket, pero no sé cómo modificar el archivo app.yml dentro de la configuración de Discourse en Docker Compose.

Les deseo lo mejor.
Y

A menos que de alguna manera estés usando Caddy para proxyear tu correo saliente, no creo que tenga relación.

No es necesario que lo hagas con socket; simplemente puedes hacer referencia al nombre del contenedor Docker y/o a su dirección IP. Discourse working with jwilder /nginx proxy & acme-companion - #7 by Steve_Emerson habla sobre el uso de la plantilla con socket y muchas otras cosas.

La respuesta corta es no, no a través de docker-compose por sí solo. Es algo que me gustaría ver, pero el plan aquí es permitir que cualquiera cree una imagen base personalizada que pueda compartirse públicamente para impulsar el progreso. Crear un plugin implica clonar el plugin, ejecutar bundle install, npm y recompilar Ember… Esto no debería hacerse durante el arranque.

Parte de la idea aquí es permitir que las imágenes se construyan exactamente igual que discourse/discourse, con el mismo archivo app.yml que usan las versiones compatibles de Discourse.

Como ejemplo, estoy construyendo mi imagen personal con resenha actualizando el app.yml principal para incluir el plugin aquí y luego subiéndolo a un registro Docker externo (¡público!).

Si estás utilizando un servicio de correo externo, no creo que tu proxy inverso Caddy sea probablemente el problema. A diferencia de las versiones actuales del launcher, discourse/discourse no te recordará configurar tus variables de entorno de correo (aunque sigue siendo necesario hacerlo). Te sugiero verificarlas primero.

He logrado cambiar el límite de tamaño de carga:

cat fix-upload-size.sh (que necesita chmod +x):

#!/bin/sh
sed -i 's/client_max_body_size .*;/client_max_body_size 500m;/' /etc/nginx/conf.d/discourse.conf

en docker-compose.yml:

    volumes:
     - ./fix-upload-size.sh:/etc/runit/1.d/fix-upload-size

He logrado construir una imagen, pero «solo» utilizando la versión ESR. Cuando uso algo más reciente que eso, el proceso de construcción requiere una base de datos y una instancia de Redis. ¿Es intencional?

¿Hay alguna forma de actualizar Discourse a la última versión al usar esta imagen?

La estoy utilizando para el foro del grupo de investigación de mi facultad y me gustaría actualizar a la última versión de Discourse, pero la imagen no se ha actualizado desde marzo. ¿Cuál sería la forma recomendada de realizar la actualización?

Ese fue un efecto secundario no intencional de agregar una llamada para limpiar actualizaciones web atascadas; estoy trabajando en resolver esto pronto a través de FIX: run clear_stuck_web_upgrades during precompile stage · Pull Request #1055 · discourse/discourse_docker

¡Genial, gracias!

Pero tengo otra pregunta: estoy usando Azure para estudiantes y utilizo Container Apps. Si de alguna manera actualizo dentro de la aplicación, temo que si la instancia en la que se ejecuta Discourse falla por alguna razón, podría dejar nuestro foro en desorden, ya que al reiniciar probablemente estará en una versión anterior.

¡Una vez más, gracias!

Eso es un riesgo: lamentablemente no hay una buena manera de evitarlo, salvo asegurarse de que la imagen esté actualizada si estás actualizando tanto en la aplicación como mediante la descarga de imágenes desde el repositorio de Docker. Realmente no lo recomendaría.

Mientras tanto, sigo trabajando en ordenar el repositorio de Docker (hay otro problema que resolver aquí).