Developing Discourse using a Dev Container

로컬 macOS 환경에서 OrbStack (무관한 제품)를 사용하고 있으며, 사용자 지정 도메인으로 HTTPS를 통해 Discourse를 실행하려는 경우, devcontainer.json 파일을 다음 추가 사항으로 업데이트하세요:

  1. 컨테이너에 이름을 지정합니다.
  2. RAILS_DEVELOPMENT_HOSTS 환경 변수에 .orb.local 와일드카드 도메인을 추가합니다 (호스트 이름은 쉼표로 구분해야 합니다).
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -13,10 +13,11 @@
   ],
   "remoteUser": "discourse",
   "remoteEnv": {
-    "RAILS_DEVELOPMENT_HOSTS": ".app.github.dev",
+    "RAILS_DEVELOPMENT_HOSTS": ".app.github.dev,.orb.local", // 단계 2
     "PGUSER": "discourse",
     "SELENIUM_FORWARD_DEVTOOLS_TO_PORT": "9229",
   },
+  "runArgs": ["--name","discourse"], // 단계 1
   "mounts": [
     "source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume",
     "source=${localWorkspaceFolderBasename}-pg,target=/shared/postgres_data,type=volume",

참고: GitHub Codespaces에서 정의된 것처럼 *.orb.local 호스트 이름과 컨테이너 이름을 동적으로 설정하는 방법을 아시는 분에게 알려주시면 감사하겠습니다. 값을 .app.github.dev,.orb.local로 설정해도 저에게는 작동하지 않았습니다.

업데이트: 어찌된 일인지 /etc/hosts 파일에 레코드가 하나 빠져 있었습니다. 이 줄을 추가한 후 단계 2에서 .orb.local 와일드카드 도메인을 사용할 수 있었습니다.

devcontainer.json 파일에 이 변경 사항을 적용하면 이제 https://discourse.orb.local/에서 로컬 Discourse 인스턴스를 실행할 수 있습니다.

/etc/hosts

아직 해당 항목이 없다면 /etc/hosts 파일에 이 줄을 추가하세요.

##
# Docker and OrbStack
##
127.0.0.1 host.docker.internal

보너스 팁 1
어떤 이유로든 네트워크 설정이나 회사 VPN 네트워크 등이 OrbStack의 컨테이너 IP 범위와 충돌하는 경우, 다른 범위로 OrbStack을 업데이트하세요.

보너스 팁 2
단계 1을 생략하면 OrbStack이 무작위로 이름이 지정된 컨테이너를 생성하지만, 포트 번호를 추가하지 않고도 HTTPS를 사용할 수 있습니다. 단점으로는 컨테이너 이름이 변경되므로 도메인 이름도 컨테이너를 재빌드할 때마다 새로워진다는 것입니다.

1개의 좋아요