環境變數
您可以使用以下選項之一在容器中設定環境變數,而無需更改容器映象。
您應在設定中驗證是否已選中 終端 > 整合: 繼承 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.ymlversion: '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) 執行 開發容器:重建容器 以應用更改。否則,執行 開發容器:在容器中開啟資料夾... 以連線到容器。