Ich kann die secondsite-Methode nicht wieder zum Laufen bringen und ziehe daher in Betracht, meine beiden Websites in separaten Containern auf demselben Server auszuführen.
Wenn jemand damit Erfahrung hat, kann er mir gerne eine Nachricht schicken.
Es ist größtenteils auf einem anständig großen Rechner machbar. Sie benötigen mindestens einen Reverse-Proxy, um SSL zu handhaben. Und vielleicht die Socket-Vorlage anstelle der Port-Weiterleitung verwenden.
Ich habe es mit Traefik und Nginx Proxy gemacht. Es verbraucht mehr Ressourcen als Multisite. Sie müssen immer noch verstehen, wie Sie PostgreSQL dazu bringen, mehrere Datenbanken zu haben (es sei denn, Sie möchten zwei Kopien von PostgreSQL ausführen, was noch mehr Ressourcen erfordert).
Dieser Server hat 12 Prozessoren und 16 GB RAM, und dies sind keine Hochvolumen-Foren, daher mache ich mir keine Sorgen über die zusätzlichen Ressourcen, um zwei Container zu haben, die beide PostgreSQL ausführen.
meinen Sie damit, dass ich die beiden Container als eine einzige Website hinter einem sinnvollen Hostnamen und einer Failover-Einrichtung behandeln soll (d. h. denselben DISCOURSE_HOSTNAME und einen Load Balancer/Health-Check davor), anstatt zu versuchen, beide Container direkt verfügbar zu machen?
Ich stelle mir vor, dass beide Konfigurationen den Netzwerkparameter annehmen können, anstatt Ports verfügbar zu machen, was bei möglichen Konflikten hilft?
Müssen die Volume-Bindungen für jeden Container unterschiedlich sein?
Jede Seite hat ihren eigenen Hostnamen. Das ist der Sinn der Sache, oder?
Ich lasse den Reverse-Proxy mit Port 80 auf dem Container sprechen. Andere ziehen es vor, Sockets zu verwenden. Du solltest keine Ports freigeben.
Nein. Keine dieser Dateien kann geteilt werden.
Jede Seite benötigt eine PostgreSQL-Datenbank (kann auf demselben PostgreSQL-Server sein, wenn du weißt, wie das geht).
Jede Seite benötigt ihren eigenen Redis. Sie können Redis nicht teilen, was ein Vorteil der Multisite-Einrichtung ist.
Wenn du zwei PostgreSQLs ausführen möchtest, ändere einfach den Hostnamen, SMTP und die Pfade der Volumes und entferne/kommentiere die SSL- und LetsEncrypt-Vorlagen aus. Du kannst sogar discourse-setup verwenden, wenn du app.yml vor dem erneuten Ausführen von ./discourse-setup beispielsweise in hostname.yml umbenennst.
Könnten Sie diesen Punkt näher erläutern? Ich habe beide Beispiele unten angepasst, um sie an eine Konfiguration für eine zweite Website anstelle einer einzelnen Website anzupassen.
Das klingt gut und erklärt wahrscheinlich, warum .\\discourse-setup nicht mit einer app.yml funktionierte, anstatt dass die yml-Datei den beabsichtigten Hostnamen trug?
Ich habe vorerst zwei separate Kopien von Discourse, mit denen ich ein wenig herumspielen kann. Wie ich bereits sagte, ist dieses System groß genug und die Websites sind klein genug, dass ich es nicht für problematisch halte, Dinge zu duplizieren.
Es geht nicht um den Platz. Es ist einfach verwirrend. Es ist so konzipiert, dass es einen einzigen Discourse-Klon und alle Container im Verzeichnis „container“ gibt. Deshalb heißt es „container“.