Quais configurações podem ser configuradas sem reconstruir o contêiner?

Olá

Uma pergunta rápida sobre a possibilidade de implantar a mesma imagem do Discourse em múltiplos ambientes (staging, beta, produção, etc.).

Gostaria de construir a imagem do Discourse uma única vez no meu pipeline de CI/CD, enviar essa imagem para um repositório e ter exatamente a mesma imagem do Discourse executando em todos os ambientes. Gostaria que as diferenças entre os ambientes (hostname, etc.) fossem representadas em variáveis de ambiente ou arquivos de configuração externos ao contêiner. Com o Discourse, minha experiência é que não é totalmente óbvio quais configurações estão incorporadas na imagem e quais são seguras de configurar alterando o YAML sem uma nova construção.

Existe uma lista das variáveis que podem ser configuradas com segurança em cada ambiente sem uma reconstrução do contêiner em algum lugar?

Welcome, @russellwstanley. There has been lots of discussion of people who want to be able to have a docker_compose file that solves all their problems, but it’s not quite that simple. There has been much discussion about this (that I can’t find in 30 seconds).

To see what settings you can pass to the container you can look at discourse/config/discourse.config.sample at main · discourse/discourse · GitHub and discourse/config/site_settings.yml at main · discourse/discourse · GitHub to see what can be configured with environment variables.

But some things need to be done with things like

rake db:migrate
rake assets:precompile

so even if you get an image that has all the right stuff, it’s not quite as simple as just cranking it up.

Thanks so much for your quick reply @pfaffman. I’ll take a look at those settings and see if I can make something work.