¿Puede Discourse enviar imágenes Docker frecuentes que no necesiten ser inicializadas?

Eh… :slight_smile:

El script ni siquiera necesita acceso a /var/discourse (¿por qué lo hace?).

Todo el problema se deriva de un par de cosas:

  1. Gran malentendido de lo que es docker, cómo funciona y qué permite.
  2. Unión de la noción de que docker = docker-compose (¡no lo es!)

Puedes tener una configuración completamente contenida que virtualmente no toca el entorno del host…

Después de investigar bastante, parece que todo el script de “configuración” se creó para que la instalación fuera lo más simple posible para la persona muy poco técnica. Comprueba, guía al usuario y configura todo. Eso puede ser algo bueno, pero falla por completo en cualquier cosa que intente desviarse incluso una pulgada del camino previsto.

En la configuración más básica, es posible que ni siquiera necesites acceso a ningún directorio del host: todo estará contenido dentro de un entorno limitado (se usará una imagen para crear el contenedor y todo el almacenamiento requerido se manejará a través de volúmenes de docker [tiene problemas cuando quieres migrar a otro lugar o acceder a los archivos, pero estamos hablando de lo básico]).

También intenta asegurarse de que el DNS sea correcto, intenta configurar certificados, proxy inverso, SMTP y lo que sea, nuevamente, está completamente bien proporcionar esta configuración fácil.

¡PERO!

El problema NO es desechar eso, sino ADEMÁS proporcionar una imagen de docker simple (ya existe, es utilizada por los scripts y las plantillas utilizadas por el script. discourse_docker/templates/postgres.template.yml at main · discourse/discourse_docker · GitHub y discourse_docker/launcher at main · discourse/discourse_docker · GitHub) con

  1. versionado adecuado: etiqueta la imagen con la versión de discourse lanzada (3.4.5 o lo que sea)
  2. documentación sensata y simple de las variables de entorno esperadas (que controlan la conectividad de la base de datos/redis/etc.) y las rutas/volúmenes posibles que se pueden montar en el host.

Solo eso…

Echa un vistazo a la guía de miniflux mencionada anteriormente: Miniflux Installation with Docker - te da detalles sobre la imagen (y qué repositorios las sirven) y las variables de entorno posibles para configurarla.
O la imagen de docker de MySQL: https://hub.docker.com/_/mysql - lo mismo - una guía que explica qué se puede configurar (ver especialmente la sección: “Variables de entorno”).

Nadie dice: “tienes que usar el lanzador de mysql para construir la imagen de mysql para poder usarla”, ni redis para el caso - en este caso simplemente usas las imágenes existentes y esta es la clave y la esencia de usar docker. Sin embargo, en el caso de discourse, de repente esta es una solución “mala” y todos gritan: “¡tienes que construir tu propia imagen!” – ¿por qué!?