環境変数

コンテナイメージを変更することなく、以下のいずれかのオプションを使用してコンテナ内に環境変数を設定できます。

設定で Terminal > Integrated: Inherit Env にチェックが入っていることを確認してください。そうしないと、設定した変数が統合ターミナルに表示されない場合があります。この設定はデフォルトでチェックされています。

オプション 1: 個別の変数を追加する

devcontainer.json で参照している内容に応じて

  • Dockerfile またはイメージ: devcontainer.jsoncontainerEnv プロパティを追加してコンテナ全体に適用する変数を設定するか、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 ファイルから変数を読み込む

© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.