¿Alguien podría aconsejarme sobre cómo crear una imagen de Docker de Discourse que tenga varios complementos integrados en lugar de instalarlos a través de la interfaz de usuario?
Contexto: queremos utilizar la última compilación de Discourse, es decir, discourse:stable, y por lo que he leído en la guía de instalación y otra documentación, podemos tomar esta imagen base en nuestro propio Dockerfile y luego hacer algo como:
RUN cd /var/www/discourse/plugins && \
git clone https://github.com/discourse/discourse-chat-integration.git
Esto añadiría el complemento discourse-chat-integration a la compilación. Luego, en tiempo de ejecución, podemos pasar todas las variables de entorno necesarias, es decir, DISCOURSE_HOSTNAME, DISCOURSE_SMTP_DOMAIN, DISCOURSE_DB_HOST, etc., en lugar de tenerlas codificadas en el archivo app.yml.
Si alguien pudiera aconsejarme sobre lo anterior, se lo agradecería enormemente.
No puedes instalar complementos desde la interfaz de usuario. Los instalas desde el archivo YML. Si estás utilizando algún contenedor no soportado que no construiste tú mismo con el lanzador (launcher), entonces harías algo como lo que sugieres.
Pero ese complemento está en el núcleo (core) (¿pero quizás aún no en la versión estable?).
En realidad, no están codificados en el archivo YML. El archivo yml se utiliza para construir y lanzar el contenedor. Puedes construirlo y luego lanzarlo tú mismo, como quieras. Puedes usar ./launcher start-cmd nombre-del-contenedor (o algo parecido, puedes mirar en el lanzador para ver si me equivoqué).
Así que creo que lo que quieres hacer es seguir usando el lanzador (launcher), añadir el complemento, ejecutar ./launcher bootstrap app en el contenedor, y luego lanzarlo como quieras. Incluso puedes enviarlo a un repositorio desde donde puedas lanzarlo desde otra máquina.