VS Code가 아닌 경우의 설명서가 방금 macOS에서 나에게 작동하지 않았습니다. VS Code 외부에서 Discourse Docker 이미지와 상호작용하려는 macOS 사용자는 대신 기존 boot_dev Docker 스크립트를 사용하는 것을 권장합니다.
docker ps를 실행하여 컨테이너 이름(예: peaceful_lumiere와 같은 무작위하고 우스운 이름)을 찾았습니다. docker inspect peaceful_lumiere | jq '.[0].NetworkSettings.Networks.bridge.IPAddress'를 실행했고, IP 주소가 출력되었습니다. 브라우저에서 http://<ip>:4200으로 이동했지만, 무한히 로딩만 되었습니다.
이것은 ember-cli 개발 서버가 모든 인터페이스에서 리스닝하지 않기 때문이라고 생각합니다. 컨테이너 내부에서는 http://127.0.0.1:4200에서만 리스닝하고 있습니다.
결국 .devcontainer/devcontainer.json에 다음과 같은 runArgs 섹션을 추가하여 작동하게 만들었습니다.
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",
… 하지만 이렇게 하면 VS Code에서는 작동하지 않습니다(VS Code 그리고 devcontainer가 모두 포트 포워딩을 시도하기 때문입니다). 별도의 devcontainer-cli.json을 만들고 devcontainer --override-config .devcontainer/devcontainer-cli.json을 사용했는데, 그렇게 하니까 작동했습니다.
하지만 그제서야 깨달았습니다: 이렇게 많은 노력을 기울였지만, 기존 boot_dev 스크립트를 사용하는 것과 비교해 더 나아진 것이 없습니다. 문서화된 단계를 따르는 것이 CLI에서 devcontainer를 올바르게 작동시키려고 애쓰는 것보다 빠르고 쉽습니다.
Dev Containers는 주로 VS Code, 또는 포트 포워딩을 자동으로 관리해 주는 _무언가_와 함께 사용할 때 의도된 것입니다. devcontainer CLI는 그렇게 하지 않습니다. 따라서 VS Code를 원하지 않는다면, Dev Containers를 사용하는 것도 고려해 볼 가치가 없을 수 있습니다.