環境變數
您可以使用以下選項之一,在容器中設定環境變數,而無需變更容器映像。
您應驗證 **終端機 > 整合式:繼承 Env** 是否已在設定中勾選,否則您設定的變數可能不會出現在整合式終端機中。此設定預設為勾選。
選項 1:新增個別變數
根據您在 devcontainer.json
中參考的內容而定
-
**Dockerfile 或映像**: 將
containerEnv
屬性新增至devcontainer.json
,以設定應套用至整個容器的變數,或使用remoteEnv
設定 VS Code 和相關子程序(終端機、工作、偵錯等)的變數"containerEnv": { "MY_CONTAINER_VAR": "some-value-here", "MY_CONTAINER_VAR2": "${localEnv:SOME_LOCAL_VAR}" }, "remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }
如本範例所示,
containerEnv
可以參考本機變數,而remoteEnv
可以參考本機變數和現有的容器變數。
影片:在開發容器中修改 PATH
-
**Docker Compose**: 由於 Docker Compose 內建支援更新容器範圍的變數,因此
devcontainer.json
中僅支援remoteEnv
"remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }
如本範例所示,
remoteEnv
可以參考本機變數和現有的容器變數。若要更新套用至整個容器的變數,請更新 (或擴充) 您的
docker-compose.yml
,並針對適當的服務加入以下內容version: '3' services: your-service-name-here: environment: - YOUR_ENV_VAR_NAME=your-value-goes-here - ANOTHER_VAR=another-value # ...
如果您已建置容器並連線到它,請從命令面板 (F1) 執行 **Dev Containers: Rebuild Container** 以套用變更。否則,請執行 **Dev Containers: Open Folder in Container...** 以連線到容器。
選項 2:使用 env 檔案
如果您需要設定大量的環境變數,則可以使用 .env
檔案。
首先,在您的原始碼樹狀結構中的某處建立一個環境檔案。請考慮此 .devcontainer/devcontainer.env
檔案
YOUR_ENV_VAR_NAME=your-value-goes-here
ANOTHER_ENV_VAR_NAME=your-value-goes-here
接下來,根據您在 devcontainer.json
中參考的內容而定
-
**Dockerfile 或映像**: 編輯
devcontainer.json
並新增devcontainer.env
的路徑"runArgs": ["--env-file",".devcontainer/devcontainer.env"]
-
**Docker Compose:** 編輯
docker-compose.yml
並新增相對於 Docker Compose 檔案的devcontainer.env
檔案路徑version: '3' services: your-service-name-here: env_file: devcontainer.env # ...
docker compose
將自動選取包含 docker-compose.yml
的資料夾中名為 .env
的檔案,但您也可以在其他位置建立一個檔案。
如果您已建置容器並連線到它,請從命令面板 (F1) 執行 **Dev Containers: Rebuild Container** 以套用變更。否則,請執行 **Dev Containers: Open Folder in Container...** 以連線到容器。