Zuerst habe ich versucht, Discourse mit halbwegs Standardeinstellungen auszuführen, und es funktionierte ziemlich gut. Ich konnte Dateien hochladen und andere Dinge tun.
Dann habe ich festgestellt, dass der Pfad in app.yml/var/discourse war, und habe ihn zu /var/www/discourse geändert, den Container gestoppt und zerstört, den vorherigen Ordner komplett entfernt. Und ich habe ihn wieder am Laufen… aber ich habe festgestellt, dass ich jetzt keine Dateien mehr hochladen kann.
Welche Art von Berechtigungen benötigt der Ordner uploads? Ich kann einige Änderungen manuell vornehmen, aber ich würde gerne wissen, was genau und ob das im Allgemeinen in Ordnung ist (sollte der Launcher nicht dafür sorgen, die richtigen Berechtigungen festzulegen, insbesondere wenn er von Grund auf neu gestartet wird?).
Der Pfad /var/www/discourse ist der Pfad zu Discourse innerhalb des Containers. /var/discourse ist der normale Pfad für Discourse_docker außerhalb des Containers.
Da Sie gerade erst angefangen haben, würde ich Ihnen wahrscheinlich empfehlen, einfach neu anzufangen und diesmal nichts umzubenennen.
Ich vermute, dass Sie den Pfad in Ihrer app.yml nicht aktualisiert haben und er daher versucht, auf etwas zuzugreifen, das nicht existiert.
Ich habe viele andere Projekte auf diesem Server und sie sind alle schön in meinem Ordner /var/www untergebracht, daher möchte ich das gerne so beibehalten Und es ist mir egal, wie es im Container aussieht.
Aber das habe ich doch? In Mounts, oder wo sonst sollte es hin?
Entschuldigung, kann nicht helfen. Aber ich bin mir absolut sicher, dass Sie dort kein Nginx haben Die Situation ist die gleiche mit Docker-Containern.
Genau mein Punkt. Da Ihr Reverse-Proxy Nginx nicht in diesem Pfad liegt, warum sollte es dann ein Docker-Container sein.
Aber ein Container lebt sein eigenes Leben und der Pfad zum Container sollte nicht beeinflussen, was sein Nginx tut. Haben Sie auch etwas anderes geändert?
Innerhalb von Docker? Ich glaube nicht. Und… es ist mir egal, weil das alles von CDCK geplant und gemacht wird und ich vertraue darauf, dass sie wissen, was sie tun
Okay, nichts hat funktioniert, also habe ich schließlich die Berechtigungen für den Ordner uploads auf 755 geändert und jetzt ist es in Ordnung. Nach dem Neuerstellen scheinen die Uploads selbst in Ordnung gewesen zu sein (von der Engine-Seite), jedoch konnte nginx diese nicht lesen.
Ich verstehe nicht ganz, warum Sie das alles tun. Es ist Ihre Entscheidung, einen Container an einem Ort zu platzieren, der weltweit sichtbar ist, wenn Sie einen kleinen Fehler machen, aber das ist Ihre Entscheidung. Aber alles andere… warum?
Einen Reverse-Proxy vor Discourse zu schalten ist wirklich trivial und ansonsten wäre Ihre Einrichtung eine Standardinstallation ohne all diesen Aufwand. Sicher, wenn Sie spielen wollen und das Ihr Hobby ist, aber bald wird jemand auftauchen und sagen, dass Sie nur für eine Standardinstallation Unterstützung erhalten und das größte Problem ist, dass niemand wirklich weiß, was Sie getan haben. Oder warum.
Sie beheben ein Problem, das Sie hatten, als Sie etwas anderes zu tun begannen, was ein Standardbenutzer benötigt. Selbst mit einem Reverse-Proxy.
Deshalb sind Sie weit vom Standard entfernt Denn es gibt zwei Optionen:
Sie haben einen Fehler, den sonst niemand hat.
Sie haben etwas Seltsames getan.
Vielleicht ist es ein Fehler. Und Sie haben dies bestätigt, indem Sie eine Standardinstallation auf einem (in vielerlei Hinsicht) sicheren Pfad vorgenommen und gleichzeitig Ihren Reverse-Proxy ordnungsgemäß verbunden haben. Denn wenn es immer noch kaputt ist, wette ich, dass das Problem beim virtuellen Host und/oder den Ports liegt. Aber wenn es funktioniert… dann sind wir wieder bei Option “seltsam” - wo niemand weiß, was Sie getan haben.
Sehen Sie hier das Problem?
In jedem Fall führt die Verwendung eines Reverse-Proxys zu keinem Support… das ist hier die Richtlinie. Aber andere Benutzer können und werden oft helfen.