Salut,
J’ai installé Discourse sur deux machines virtuelles Azure distinctes (staging et production). Existe-t-il un moyen de déployer automatiquement les modifications de Discourse staging vers Discourse production ?
Les modifications de l’interface utilisateur (thème) seront gérées dans un dépôt Git, donc leur expédition en production ne posera pas de problème. La principale préoccupation concerne l’automatisation du déploiement des paramètres et configurations de Discourse dans l’environnement de production. Comment pouvons-nous y parvenir ?
Vous pouvez pousser le conteneur de staging vers un dépôt, puis le lancer en production. La commande ./launcher start-cmd app vous donnera ce dont vous avez besoin pour démarrer le conteneur dans Docker.
Vous devrez également migrer la base de données (peut-être avec SKIP_POST_DEPLOYMENT_MIGRATIONS, puis à nouveau lorsque le nouveau conteneur aura démarré si vous souhaitez une interruption de service nulle) et précompiler les actifs.
Certains paramètres se trouvent dans la base de données. D’autres peuvent être définis avec des variables d’environnement comme DISCOURSE_SETTING_NAME (par exemple, DISCOURSE_TITLE='ma super communauté').
Notez « afficher uniquement les remplacements » en haut à droite.
Cela vous donnera une liste des éléments qui ne sont pas par défaut et que vous pourriez transférer manuellement.
Selon vos besoins, cela pourrait être plus simple. (Cela dit, j’ai plus de 100 paramètres qui ne sont pas par défaut sur mon instance de plusieurs années.)
app.yml peut être partiellement copié.
Bien sûr, cela ne transférera pas les catégories, etc.
Si vous n’êtes pas un amateur, je recommande deux conteneurs, car vous devez arrêter la base de données lorsque vous démarrez un nouveau conteneur, vous ne pouvez donc pas avoir de temps d’arrêt nul. Mais cela fonctionnerait avec un seul conteneur.