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

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

最佳答案

在项目的.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”
],

...
}

08-07 21:08