本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

环境变量

您可以通过使用以下选项之一在容器中设置环境变量,而无需更改容器镜像。

您应该验证 终端 > 集成:继承环境 在设置中已勾选,否则您设置的变量可能不会出现在集成终端中。此设置默认已勾选。

选项 1:添加单独的变量

根据你参考的内容devcontainer.json输入:

  • Dockerfile 或者 image:添加 容器环境属性到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}"
    }
    

    正如这个例子所示,容器环境可以引用局部变量和远程环境可以引用本地和现有的容器变量。

视频:在开发容器中修改 PATH



  • Docker Compose:由于Docker Compose内置了更新容器级变量的支持,因此仅需远程环境得到支持devcontainer.json输入:

    "远程环境": {
        "路径": "${容器环境:路径}:/一些/其他/路径",
        "我的远程变量": "一些-其他-值-here",
        "我的远程变量2": "${本地环境:一些_本地_变量}"
    }
    

    正如这个例子所示,远程环境可以引用本地和现有的容器变量。

    要更新适用于整个容器的变量,请更新(或扩展)你的docker-compose.yml与以下内容的服务:

    版本'3'
    服务
      your-service-name-here
        环境
          - YOUR_ENV_VAR_NAME=your-value-goes-here
          - ANOTHER_VAR=another-value
         # ...
    

如果你已经构建了容器并连接到它,请在命令面板 (F1) 中运行 Dev Containers: 重新构建容器 以拾取更改。否则,请运行 Dev Containers: 在容器中打开文件夹... 以连接到容器。

选项 2:使用 env 文件

如果你需要设置大量的环境变量,你可以使用一个.env请将以下文本翻译成中文: file instead.

首先,在你的源代码树的某个地方创建一个环境文件。考虑这个.devcontainer/devcontainer.env文件:

YOUR_ENV_VAR_NAME=你的值放在这里
ANOTHER_ENV_VAR_NAME=你的值放在这里

接下来,取决于你在devcontainer.json输入:

  • Dockerfile 或镜像:编辑devcontainer.json并添加一个路径到devcontainer.env输入:

    "runArgs": ["--env-file",".devcontainer/devcontainer.env"]
    
  • Docker Compose: 编辑 docker-compose.yml并添加一个路径到devcontainer.env文件相对于Docker Compose文件:

    版本'3'
    服务
      your-service-name-here
        env_filedevcontainer.env
        # ...
    

Docker Compose将自动拾取一个名为 的文件.env在包含的文件夹中docker-compose.yml,但您也可以在其他位置创建一个。

如果你已经构建了容器并连接到它,请在命令面板 (F1) 中运行 Dev Containers: 重新构建容器 以拾取更改。否则,请运行 Dev Containers: 在容器中打开文件夹... 以连接到容器。

视频:从 .env 文件加载变量