Benutzerdefinierte IP funktioniert nicht?

Hallo zusammen,
kürzlich habe ich versucht, Discourse auf meinem Debian-Server zu installieren. Alles lief gut, außer dass ich nicht auf die Website zugreifen konnte, weil ich versucht habe, den Port zu ändern, um darauf zuzugreifen, aber nur Nginx angezeigt wurde. Also habe ich das Problem herausgefunden und versucht, eine benutzerdefinierte IP mit einem benutzerdefinierten Netzwerk einzurichten, das auf mein Netzwerk verweisen würde, aber ich konnte nicht darauf zugreifen, es gab mir immer wieder Fehler. Hier ist der Fehler, den ich erhalte:

./launcher start app --docker-args --network discourse_back --ip 192.168.1.4
x86_64 arch detected.
docker: Error response from daemon: network -i not found.
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

Ich habe es auch vorher mit hello-world versucht und es hat funktioniert:

docker run -it --network discourse_back --ip 192.168.1.4 hello-world

Hello from Docker!

. . .

Hat jemand eine Idee, wie ich das beheben kann? Vielen Dank im Voraus!

Versuchen Sie es vielleicht hiermit:

 ./launcher start app --docker-args '--network discourse_back --ip 192.168.1.4'

Ich habe es endlich zum Laufen gebracht, aber jetzt steht dort „Willkommen bei nginx“, obwohl ich meinen Hostnamen „discourse.simonz.local“ eingegeben habe (der auch in der app.yml unter

DISCOURSE_HOSTNAME: discourse.simonz.local

steht. Habe ich etwas falsch gemacht?

Produktions-Discourse funktioniert nicht ohne https.

Vielleicht gibt es ein anderes Nginx, das diese Meldung anzeigt?

Sie sollten zuerst eine Standardinstallation zum Laufen bringen, bevor Sie etwas Ausgefalleneres versuchen.

Wenn Sie beabsichtigen, dass diese Instanz im Internet verfügbar ist, wird die Verwendung einer .local-Domain in app.yml Probleme verursachen. Vielleicht ist dies etwas, das Sie nur zu Hause oder nur zum Testen verwenden möchten. Ich dachte nur, es wäre erwähnenswert.

Unter der Annahme, dass Ihr Docker-Netzwerk korrekt funktioniert und den Container von außerhalb des Host-Rechners über diese IP-Adresse erreichbar macht, müssten Sie auch DNS so konfigurieren, dass discourse.simonz.local auf diese IP-Adresse verweist.

Es scheint, dass die Domain auf den Host-Rechner aufgelöst wird und Sie den Port nicht angeben (z. B. discourse.simonz.local:1234), wenn Sie versuchen, darauf zuzugreifen, sodass sie stattdessen nginx und nicht den Docker-Container erreicht.

Wenn Sie Discourse über einen anderen Port verfügbar machen möchten, benötigen Sie ihn wahrscheinlich nicht über eine andere IP-Adresse. Wenn Sie ihn über den Standardport sowie nginx über den Standardport verfügbar machen möchten, müssen Sie DNS so konfigurieren, dass es Sie auf die richtige IP-Adresse leitet, oder Sie benötigen nginx, um Discourse weiterzuleiten.

.local-Domains werden normalerweise vom System basierend auf seinem konfigurierten Hostnamen angekündigt. Discourse hat normalerweise keinen wirklichen Bedarf, dies zu tun, daher hat der Container möglicherweise nichts dafür.

Wenn Sie den Weg über den Standardport, eine andere IP-Adresse und DNS gehen möchten, liegt dies außerhalb des Geltungsbereichs von Discourse, und die Einrichtung hängt von verschiedenen Faktoren in Ihrem Netzwerk ab.

Wenn Ihr Ziel darin besteht, etwas sowohl in nginx als auch in Discourse auf demselben Host verfügbar zu machen, empfehle ich den oben genannten Proxy-Ansatz. Obwohl es sich technisch gesehen um eine nicht unterstützte Installation handelt, ist es eine gängigere Einrichtung, bei der mehr Leute helfen können.

Es funktioniert nur auf Standardports.

Es sollte nicht über das Internet zugegriffen werden, sondern in einer lokalen Umgebung ausprobiert werden. Die Ports sind so ziemlich korrekt, die IP ist korrekt.

Kann ich nicht bereits etwas auf Port 80 laufen haben und ich habe keine Option gesehen, die IP-Adresse zu ändern, die es verwenden soll, in der normalen Installation?

Ich habe diese Änderung bereits rückgängig gemacht, sie läuft wieder auf den normalen Ports 80 und 443.

Wenn Sie wissen, wie Sie Ihren Reverse-Proxy zum Laufen bringen, können Sie ihn auf einem anderen Hostnamen ausführen. HTTPS und Standardports sind erforderlich.

Wenn Sie es nur vorübergehend lokal einrichten, um es auszuprobieren, würde ich eher eine virtuelle Maschine hochfahren, als zu versuchen, es neben nginx zum Laufen zu bringen.

Die virtuelle Maschine kann eine eigene IP erhalten, sich wahrscheinlich automatisch eine .local-Adresse geben und Sie können einfach eine Standard-Discourse-Installation darin durchführen.

Wenn Sie fertig sind, werfen Sie die virtuelle Maschine weg und Sie müssen sich keine Sorgen machen, Änderungen an nginx oder irgendetwas anderem rückgängig zu machen.

1 „Gefällt mir“

Ich benutze die Docker Compose-Version, die anscheinend Nginx mitbringt und sich bereits in einer VM befindet. Ich versuche, sie mit derselben VM auszuführen, aber eine Sache geht als ..1.3 (meine andere Website) und die andere als ..1.4 (Discourse) heraus.

Ich habe gerade festgestellt, dass ich die Standardinstallation bereits durchgeführt habe. Ich möchte nur die IP-Adresse ändern, auf die sie reagiert. Meine Standard-IP ist 192.168.1.3, aber ich möchte, dass sie auf 192.168.1.4 reagiert. Beide IPs sind bereits auf dem Gerät konfiguriert.

Wenn die VM zwei IP-Adressen hat, müssen Sie nichts mit der IP-Adresse des Docker-Containers tun. Sie benötigen lediglich eine Firewall-Weiterleitung, damit …1.3:80/443 zum Host und …1.4:80/443 zum Docker-Container geleitet wird.

Wenn es sich um Linux handelt, sind AFAIK iptables und ufw die gängigsten Programme. Sie müssten wahrscheinlich die Dokumentation konsultieren oder in deren Communities nach Hilfe fragen, wie Sie diese Weiterleitung einrichten können.

Es sei denn, Sie müssen diese Art von Einrichtung testen, wo Sie Discourse letztendlich installieren möchten, würde ich dennoch empfehlen, für diesen Test einfach eine zweite VM auszuführen. Jegliche Komplexität, Discourse neben anderer HTTP/HTTPS-Software auszuführen, entfällt, wenn es in seiner eigenen VM läuft.

Na jeden Fall vielen Dank, ich konnte es starten, aber ich bekomme keine Antwort. Wahrscheinlich habe ich etwas falsch gemacht, aber danke für die Hilfe. Ich werde es ein anderes Mal versuchen, vielleicht bekomme ich ein neues Ergebnis. Danke an alle für die Hilfe und einen schönen Tag ^^