Alguém poderia me aconselhar sobre como construir uma imagem Docker do Discourse que já tenha vários plugins incorporados, em vez de instalá-los através da interface do usuário?
Contexto - queremos utilizar a versão mais recente do Discourse, ou seja, discourse:stable, e pelo que li no guia de instalação e outra documentação, podemos usar esta como imagem base em nosso próprio Dockerfile e, em seguida, fazer algo como:
RUN cd /var/www/discourse/plugins && \
git clone https://github.com/discourse/discourse-chat-integration.git
Isso adicionaria o plugin discourse-chat-integration à compilação. Em seguida, em tempo de execução, podemos passar todas as variáveis de ambiente necessárias, ou seja, DISCOURSE_HOSTNAME, DISCOURSE_SMTP_DOMAIN, DISCOURSE_DB_HOST, etc., em vez de tê-las codificadas no arquivo app.yml.
Se alguém puder aconselhar sobre o acima, ficaria muito grato.
Você não pode instalar plugins pela interface do usuário. Você os instala a partir do arquivo YML. Se você estiver usando algum contêiner ainda não suportado que você não construiu com o launcher, então você faria algo como você sugere.
Mas esse plugin está no core (mas talvez ainda não na versão stable)?
Eles não são realmente codificados no arquivo YML. O arquivo yml é usado para construir e iniciar o contêiner. Você pode construí-lo e depois iniciá-lo como quiser. Você pode usar ./launcher start-cmd nome-do-container (ou algo parecido com isso, você pode verificar no launcher para ver se errei).
Então, o que eu acho que você quer fazer é continuar usando o launcher, adicionar o plugin, executar ./launcher bootstrap app no contêiner e, em seguida, iniciá-lo como quiser. Você pode até enviá-lo para um repositório onde pode iniciá-lo a partir de outra máquina.