Automatisierte Bereitstellung für Produktionsumgebung

Hallo,
ich habe Discourse auf zwei separaten Azure-VMs (Staging und Produktion) installiert. Gibt es eine Möglichkeit, Änderungen vom Staging-Discourse automatisch auf das Produktions-Discourse zu übertragen?

UI-Änderungen (Thema) werden in einem Git-Repository verwaltet, sodass die Übertragung in die Produktion kein Problem darstellt. Die Hauptsorge liegt in der Automatisierung der Bereitstellung von Discourse-Einstellungen und -Konfigurationen in der Produktionsumgebung. Wie können wir das erreichen?

Sie können den Staging-Container in ein Repository pushen und ihn dann in der Produktion starten. Mit ./launcher start-cmd app erhalten Sie die notwendigen Dinge, um den Container in Docker hochzufahren.

Sie müssen auch die Datenbank migrieren (vielleicht mit SKIP_POST_DEPLOYMENT_MIGRATIONS und dann erneut, wenn der neue Container gestartet wurde, wenn Sie ein echtes Zero Downtime wünschen) und Assets vorkompilieren.

Einige Einstellungen befinden sich in der Datenbank. Andere können mit Umgebungsvariablen wie DISCOURSE_SETTING_NAME gesetzt werden (z. B. DISCOURSE_TITLE='meine großartige Community').

2 „Gefällt mir“

Eine leichtere Strategie ist die Verwendung dieser:

Beachten Sie “Nur überschriebene anzeigen” oben rechts.

Dies gibt Ihnen eine Liste von Dingen, die nicht Standard sind und die Sie manuell übertragen können.

Je nach Bedarf könnte dies einfacher sein. (Dennoch habe ich über 100 Einstellungen, die auf meiner mehrjährigen Instanz nicht Standard sind.)

app.yml kann teilweise kopiert werden.

Dies überträgt natürlich keine Kategorien usw.

Kann dies mit einem eigenständigen Ansatz erreicht werden, oder benötige ich zwei Container (einen für die Datenbank und einen für das Web)?

Wenn Sie kein Hobbyist sind, empfehle ich zwei Container, da Sie die Datenbank herunterfahren müssen, wenn Sie einen neuen Container starten, sodass Sie keine Ausfallzeit haben können. Es würde aber auch mit einem einzelnen Container funktionieren.

1 „Gefällt mir“