Entschuldigen Sie die doppelte Buchung, ich war zuvor durch eine andere, nicht zusammenhängende Angelegenheit verwirrt und der Socket wurde aufgrund eines Fehlers in meiner Konfiguration nicht mehr verwendet.
Hier ist mein aktueller Stand:
[crit] 274#274: *7 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.160.1, server: <domain>, request: "GET / HTTP/2.0", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "<domain>"
Ich habe chmod 777 shared/standalone/nginx.http.sock ausgeführt, um dieses Berechtigungsproblem vorübergehend zu umgehen, und jetzt erhalte ich:
[error] 203#203: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (111: Connection refused) while connecting to upstream, client: 192.168.160.1, server: <domain>, request: "GET / HTTP/2.0", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "<domain>"
Offensichtlich mache ich einige Dinge falsch, aber ich weiß nicht, was. Bitte beachten Sie, dass ich NPM nicht verwende, sondern nginx-proxy, was etwas anders ist. Insbesondere erkennt es automatisch Docker-Container, die VIRTUAL_HOST definieren, um eine Konfiguration für sie zu generieren. Daher habe ich nur den location / { ... }-Teil hinzugefügt, der sich auf Discourse bezieht, und die Dateien in sites-available mit den listen-Direktiven nicht berührt.
Ich habe bemerkt, dass der Discourse-Container in einer Neustartschleife mit dem Status Restarting (100) 7 seconds ago steckt. Das liegt daran, dass er sich beschwert, dass er den Socket nicht löschen kann. Tatsächlich war es kein tatsächlicher Socket, sondern stattdessen ein Verzeichnis, vermutlich aufgrund schlechter Manipulationen beim Mounten von Volumes, um ihn für den nginx-proxy-Container verfügbar zu machen.
Ich habe das Verzeichnis entfernt, Discourse neu gestartet und es ist jetzt ein Socket. Allerdings kann ich ihn nicht als Volume für nginx-proxy verfügbar machen.
Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting “/var/discourse/shared/standalone/nginx.http.sock” to rootfs at “/var/discourse/shared/standalone/nginx.http.sock”: mount /var/discourse/shared/standalone/nginx.http.sock:/var/discourse/shared/standalone/nginx.http.sock (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Es stellt sich heraus, dass ich den Socket nur nach /tmp/nginx.http.sock mounten musste, anstatt den gleichen Pfad beizubehalten. Endlich habe ich es anscheinend geschafft!