Unterstützt Discourse mehrere Maschinen (jeweils mit einem einzelnen Docker-Container) hinter einem eigenständigen Load Balancer?
Ich benötige eine Discourse-Installation, die den Ausfall eines Servers bewältigen kann, daher lautet meine Standardlösung, drei Server hinter einem Load Balancer zu konfigurieren (wobei der LB das SSL-Zertifikat verwaltet).
Ich habe eigenständige externe PostgreSQL- und Redis-Server für Discourse konfiguriert. (Dies alles läuft auf Google Cloud Platform). Ich verwende den Discourse-Launcher, um den reinen Web-Docker-Container zu konfigurieren.
Unterstützt Discourse den Betrieb mehrerer Container, wenn sich jeder Container auf einer anderen Maschine befindet?
Sollte ich einfach den erstellten Docker-Container von der ersten Maschine auf die anderen Maschinen kopieren?
Wie werden hochgeladene Logos behandelt?
Werden hochgeladene Logos, Favicons usw. in der Datenbank gespeichert?
Ja, genau von dort habe ich meinen Befehl kopiert.
Eine letzte Frage: Wird der Docker-Container überwacht? Falls der Docker-Container aus irgendeinem Grund stoppt, hat launcher dann etwas eingerichtet, um ihn neu zu starten?
Okay. Ich habe jetzt Discourse auf einer einzelnen Maschine zum Laufen gebracht. Ich habe zwei weitere Maschinen. Das Docker-Gast-/freigegebene Volume zeigt auf ein NFS-Verzeichnis, damit alle Maschinen auf die hochgeladenen Dateien zugreifen können (insbesondere Logos usw.).
Ich habe die Docker-Images auf die Maschinen 2 und 3 kopiert (docker save -o app-image local_discourse/app und dann docker load -i app-image).
Ich war der Ansicht, dass ein einfaches ./launcher start app funktionieren würde, aber es versucht, containers/app.yml zu überprüfen.
Werden Probleme auftreten, wenn ich zulasse, dass app.yml von Maschine 2 und 3 überprüft (und Änderungen an der DB vorgenommen) werden?
Gibt es einen besseren Weg, drei Maschinen mit einem einzigen Setup laufen zu lassen?
Verwenden Sie – ich denke, es ist ./launcher start-command app – auf dem vollständig eingerichteten Rechner (dem „Build-Rechner“), um eine vollständige Docker-Befehlszeile zu erhalten.
Kopieren Sie die app.yml und führen Sie das durch, was Sie gerade versucht haben (launcher start).