Die Anweisungen für Nicht-VS-Code haben bei mir unter macOS gerade nicht funktioniert. Ich empfehle macOS-Benutzern, die außerhalb von VS Code mit dem Discourse-Docker-Image interagieren möchten, stattdessen das herkömmliche Docker-Skript boot_dev zu verwenden.
Mit docker ps habe ich den Namen meines Containers gefunden (ein zufällig generierter alberner Name, wie peaceful_lumiere). Ich habe docker inspect peaceful_lumiere | jq '.[0].NetworkSettings.Networks.bridge.IPAddress' ausgeführt, und es wurde eine IP-Adresse ausgegeben. In meinem Browser habe ich http://<ip>:4200 aufgerufen, und es drehte sich ewig.
Ich glaube, das liegt daran, dass der ember-cli-Entwicklungsserver nicht auf allen Schnittstellen lauscht; er hört nur auf http://127.0.0.1:4200 innerhalb des Containers.
Letztendlich habe ich es zum Laufen gebracht, indem ich einen runArgs-Abschnitt zu .devcontainer/devcontainer.json hinzugefügt habe, so wie hier:
8025, // mailhog
9229 // chrome remote debug
],
+ "runArgs": [
+ "-p",
+ "127.0.0.1:4200:4200",
+ "-p",
+ "127.0.0.1:3000:3000",
+ "-p",
+ "127.0.0.1:9292:9292",
+ "-p",
+ "127.0.0.1:8025:8025",
+ "-p",
+ "127.0.0.1:9229:9229"
+ ],
"remoteUser": "discourse",
"remoteEnv": {
"RAILS_DEVELOPMENT_HOSTS": ".app.github.dev",
… aber wenn du das tust, wird es nicht in VS Code funktionieren (weil sowohl VS Code als auch der Dev-Container versuchen, Ports weiterzuleiten). Ich habe eine separate devcontainer-cli.json erstellt und devcontainer --override-config .devcontainer/devcontainer-cli.json verwendet, und das hat funktioniert.
Dann wurde mir klar: Ich habe all diese Umwege genommen, bin aber nicht besser dran als mit dem bestehenden herkömmlichen boot_dev-Skript. Die dort dokumentierten Schritte zu befolgen ist schneller und einfacher, als zu versuchen, devcontainer über die CLI dazu zu bringen, das Richtige zu tun.
Dev-Container sind primär für die Verwendung in VS Code oder etwas gedacht, das die Portweiterleitung automatisch für dich verwaltet; die devcontainer-CLI macht das nicht. Wenn du also VS Code nicht verwenden möchtest, lass vielleicht besser die Finger von Dev-Containern.