🚀 在 VS Code 中免費取得

環境變數

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

您應確認已在設定中勾選「終端機 > 整合式:繼承環境變數」,否則您設定的變數可能不會出現在整合式終端機中。此設定預設為勾選。

選項 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) 執行「開發容器:重新建置容器」以套用變更。否則,請執行「開發容器:在容器中開啟資料夾...」以連線至容器。

選項 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) 執行「開發容器:重新建置容器」以套用變更。否則,請執行「開發容器:在容器中開啟資料夾...」以連線至容器。

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