Algo trivial que pensé, pero no pude encontrar una respuesta clara, por lo tanto, pregunto aquí.
Con contenedores solo web, ¿cómo crear y usar una imagen que dichos contenedores compartirían/deberían compartir?
Eso seguramente tiene sentido: un contenedor de discurso tan “ligero” con todo lo externo (particularmente con un presupuesto de hombre pobre en máquinas virtuales XS) y cada uno con su propia imagen de Docker… no tiene sentido en mi opinión, ¿verdad?
Espero que me falte alguna documentación o guía “obvia” sobre un escenario tan simple (¿y común/popular?).
Muchas gracias.
Sí, puedes usar una única instancia de postgres para varios sitios de Discourse, pero a menos que vayas a usar multisitio (consulta Multisite configuration with Docker), cada uno necesita su propio redis.
Necesitarías crear otra base de datos y configurar el segundo contenedor web para que la use en lugar de la llamada Discourse.
Gracias por tomarte el tiempo, por intentarlo, sin embargo… no es lo que estoy preguntando.
Lo intentaré de nuevo, perdóname si fallo… de nuevo
Cuando yo:
$ ./launcher bootstrap a.forum.xyz # o similar
entonces el proceso crea:
- $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/a.forum.xyz latest d7a7b6509811 2 horas ago 4.19GB
y eso sucede con cada launcher ejecutado para un foro diferente/nuevo.
Así que termino con múltiples imágenes del mismo discourse - ¿soy solo yo y el resultado debería ser diferente?
Si no soy solo yo y ese es el resultado deseado y esperado, entonces eso es - seguro que no soy un desarrollador y no tengo conocimiento de los procesos involucrados - sino más bien realmente extremadamente derrochador (¿quizás particularmente con el contenedor solo web?) - ¿no?
Lo que esperaba - cuando probé discourse por primera vez - lo que esperaba era, prácticamente lo que hace todo lo demás, todo otro software que está dockerizado, a saber: obtener esa única imagen y ejecutar muchos contenedores a partir de ella. ¿Discourse no es capaz de hacer eso?
Si quieres usar el mismo contenedor con diferentes configuraciones para diferentes sitios, puedes usar
./launcher start-cmd
para obtener los parámetros para iniciarlo. Puedes cambiarlos para los otros sitios que quieras ejecutar. Aún necesitarás una base de datos y un redis para cada uno.
Contiene copias únicas de los temas de tu sitio, que incluyen JS, CSS y otros tipos de activos.
También la combinación única de tus plugins y sus dependencias.
Es una larga historia, pero Discourse y la mayoría de las herramientas son anteriores a cosas como Docker compose.
Enviamos un contenedor “fat” que contiene todo lo necesario, y eso tiene varias contrapartidas. Por un lado, el contenedor con estado permite características como nuestro actualizador con un clic basado en web.
Al final, nuestro statu quo actual funciona bien para personas que solo tienen una ligera inclinación tecnológica, que pueden copiar y pegar comandos en una sesión SSH y configurar DNS, pero que no son maestras de los contenedores Linux.
Y para los maestros de los contenedores Linux, podemos decirles que pueden tomar esa imagen inicializada, enviarla a un registro y reutilizarla en su software de orquestación de contenedores favorito.
Sin embargo, las personas entre las dos personalidades anteriores son las que más sienten el dolor.
No encontré una explicación sobre cómo usar un solo Redis para múltiples instancias en ese tutorial, pero ¿esto parece funcionar de inmediato cuando la configuración multisitio está disponible?
¿Entiendo correctamente?
a) Multisitio ejecuta la misma imagen de Docker para múltiples foros, utilizando un servidor redis y un servidor postgres.
b) Usar un solo redis para múltiples instancias de Discourse (usando la misma imagen o no) no es posible, ya que sin activar multisitio, no se agregará ningún prefijo a las claves de redis.
c) No hay otra forma de forzar un prefijo de clave de redis.
d) Forzar prefijos de clave de redis diferentes para diferentes imágenes de Discourse permitiría usar un servidor redis.
e) El soporte general para forzar un prefijo general de redis requeriría varios cambios centrales.