環境變數
您可以使用以下選項之一在容器中設定環境變數,而無需更改容器映象。
您應驗證設定中是否勾選了終端 > 整合:繼承環境變數,否則您設定的變數可能不會出現在整合終端中。此設定預設處於勾選狀態。
選項 1:新增單個變數
根據您在 devcontainer.json
中引用的內容
-
Dockerfile 或映象:將
containerEnv
屬性新增到devcontainer.json
以設定應應用於整個容器的變數,或將remoteEnv
新增到devcontainer.json
以設定 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) 執行 開發容器:重建容器 以應用更改。否則,執行 開發容器:在容器中開啟資料夾... 以連線到容器。
選項 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) 執行 開發容器:重建容器 以應用更改。否則,執行 開發容器:在容器中開啟資料夾... 以連線到容器。