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

Sé que no es algo fácil de hacer. Pero el propósito de los contenedores es tener un estado consistente y portable. Así que si los contenedores se utilizan como deberían, y funciona para ti, entonces hay una probabilidad bastante alta de que funcione para todos los que usen ese contenedor.

Si el bootstrap se moviera dentro del contenedor, en lugar de en el host, ya habrías avanzado bastante en hacerlo portable. Puedo echar un vistazo después de terminar otros proyectos. Tampoco soy un experto en contenedores, pero he construido algunos. Sin embargo, la desventaja es que no hay documentación de instalación disponible, ¿verdad? Es simplemente: aquí tienes, solo ejecuta este script. Puedo intentar replicar lo que hace el script. Pero eso no deja mucho margen para sugerencias de mejora.

Así que si la comunidad, especialmente las personas estrechamente involucradas y con información interna sobre cómo debería funcionar la instalación, están dispuestas a aconsejar/ayudar, entonces estoy dispuesto a iniciar esta iniciativa. De lo contrario, la calidad no será la que quieres ver.

Los objetivos serían más o menos:

  • Un Dockerfile que tenga una construcción atómica de la configuración (sin bootstrap local fuera del contenedor)
  • Sin necesidad de ejecutar el contenedor como root; lo mejor es usar fakeroot y agregar capacidades (estos son argumentos de línea de comandos; la gente aún puede elegir iniciar un contenedor como root…)
  • Crear un script de punto de entrada que pueda ser influenciado por variables de entorno, las cuales deben estar claramente documentadas
  • podman-generate-systemd o algo similar puede usarse para crear una unidad de systemd para (re)iniciar un contenedor, o iniciar un contenedor al arrancar (característica de Podman; quizás Docker tenga algo similar, pero se trata más de integrarlo)

Eso sería para la instalación básica. Para la solución escalable, se necesita una solución docker-compose y Kubernetes. Lo cual, francamente, no considero responsabilidad de la comunidad de Discourse encontrar una solución que sirva para todos. Porque estas cosas pueden adaptarse muy finamente, especialmente en Kubernetes. Así que supongo que una solución compose básica sería suficiente para que la gente se ponga al día.

Esto proporcionará una solución portable y más segura, aumentando la adopción y la calidad en general. Mientras tanto, veré si Discourse es realmente algo que necesito para mi comunidad. Si lo es, entonces usaré un sistema Ubuntu LTS por ahora. Una vez que tenga más tiempo, invertiré tiempo en una configuración así.