🚀 在 VS Code 中免費取得

環境變數

您可以使用以下選項之一,在容器中設定環境變數,而無需變更容器映像。

您應驗證 **終端機 > 整合式:繼承 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...** 以連線到容器。

影片:從 .env 檔案載入變數