Quali impostazioni possono essere configurate senza ricreare il contenitore?

Ciao

Una domanda rapida sulla possibilità di distribuire la stessa immagine di Discourse in più ambienti (staging, beta, produzione, ecc.).

Vorrei costruire l’immagine di Discourse una sola volta nella mia pipeline CI/CD, spingerla su un repository e avere la stessa identica immagine di Discourse in esecuzione in tutti gli ambienti. Vorrei che le differenze tra gli ambienti (hostname, ecc.) fossero rappresentate da variabili d’ambiente o file di configurazione esterni al container. Con Discourse, la mia esperienza è che non è affatto ovvio quali impostazioni siano incorporate nell’immagine e quali siano sicure da configurare modificando il file YAML senza una nuova build.

Esiste da qualche parte un elenco delle variabili che possono essere configurate in modo sicuro in ogni ambiente senza una ricompilazione del container?

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.