Ciao,
Ho Discourse installato su due VM Azure separate (staging e produzione). Esiste un modo per distribuire automaticamente le modifiche da Discourse staging a Discourse di produzione?
Le modifiche all’interfaccia utente (tema) verranno gestite in un repository Git, quindi la loro spedizione in produzione non sarà un problema. La preoccupazione principale riguarda l’automazione della distribuzione delle impostazioni e delle configurazioni di Discourse nell’ambiente di produzione. Come possiamo raggiungere questo obiettivo?
Puoi inviare il container di staging a un repository e poi avviarlo in produzione. Il comando ./launcher start-cmd app ti fornirà il necessario per avviare il container in Docker.
Dovrai anche migrare il database (forse con SKIP_POST_DEPLOYMENT_MIGRATIONS e poi di nuovo quando il nuovo container è stato avviato se desideri un vero zero downtime) e precompilare gli asset.
Alcune impostazioni si trovano nel database. Altre possono essere impostate con variabili d’ambiente come DISCOURSE_SETTING_NAME (ad esempio, DISCOURSE_TITLE='la mia grande community').
Questo ti darà un elenco di elementi che non sono predefiniti e che potresti trasferire manualmente.
A seconda delle tue esigenze, questo potrebbe essere più semplice. (Detto questo, ho oltre 100 impostazioni non predefinite sulla mia istanza di diversi anni.)
app.yml può essere parzialmente copiato.
Naturalmente, questo non trasferirà Categorie, ecc.
Se non sei un hobbista, consiglio due container, poiché devi arrestare il database quando avvii un nuovo container, quindi non puoi avere zero tempi di inattività. Ma funzionerebbe con un singolo container.