Construindo imagem do Discourse a partir de discourse/discourse - como instalar plugins

Olá,

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.

Obrigado.

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.

Sim, acho que pode não haver mais uma versão stable, pelo menos não por muito mais tempo. Veja RFC: A new versioning strategy for Discourse