如何使用env文件将环境变量传递到独立的vscode远程容器中?

时间:2019-10-03 22:52:27

标签: docker visual-studio-code containers vscode-remote

我正在使用独立的Go vscode远程容器进行开发,并希望将环境变量从文件加载到容器中。

我可以找到的所有示例都在使用Docker Compose及其env_file option,但是对于单个容器使用Docker Compose似乎有些过分。不使用Docker Compose,有什么方法可以实现这一目标?

1 个答案:

答案 0 :(得分:0)

在项目的.devcontainer目录中,添加一个文件来声明您的环境变量,在本例中为.env

D:.
│   .gitignore
│   README.md
│
├───.devcontainer
│      .env 
│       devcontainer.json
│       Dockerfile
│
└───.vscode
        settings.json

.env

MY_URL=https://my.com/
MY_SECRET=unicorns

然后在您的devcontainer.json中,可以定义runArgs,将.env文件作为env-file参数传递给Docker CLI run命令。这使用${localWorkspaceFolder}变量,该变量扩展到本地源代码的包含目录:

devcontainer.json

{
    "name": "Go",
    "dockerFile": "Dockerfile",
    "runArgs": [
        "--env-file", "${localWorkspaceFolder}/.devcontainer/.env"
    ], 

    ...
}

如果要声明敏感信息,可以选择将.env添加到.gitignore中。