小编fne*_*net的帖子

如何在 Visual Studio Code docker 容器内运行的 .devcontainer 使用的 env 文件中引用另一个环境变量?

概括

我正在使用 Visual Studio Code 运行 docker 容器并将我的环境变量作为文件传递。

问题

我正在尝试从其他环境变量动态格式化字符串,但在解析字符串时遇到问题。

我能够构建容器并且调试终端选项卡显示没有问题。

我目前没有使用docker-compose.yml,而是使用Visual Studio.devcontainer设置。

代码

开发容器.json

...

"runArgs": [
        "--env-file", "${localWorkspaceFolder}/.env.dev"
, 

...
Run Code Online (Sandbox Code Playgroud)

.env.dev

DATABASE_DATABASE=database
DATABASE_USER=user
DATABASE_PASSWORD=password
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_DRIVER=postgresql
CONNECTION_STRING=${DATABASE_DRIVER}://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DATABASE}
Run Code Online (Sandbox Code Playgroud)

输出

当我输入envbash 时,它显示:

DATABASE_DATABASE=database
DATABASE_USER=user
DATABASE_PASSWORD=password
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_DRIVER=postgresql
CONNECTION_STRING=${DATABASE_DRIVER}://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DATABASE}
Run Code Online (Sandbox Code Playgroud)

我希望它显示的地方:

DATABASE_DATABASE=database
DATABASE_USER=user
DATABASE_PASSWORD=password
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_DRIVER=postgresql
CONNECTION_STRING=postgresql://user:password@$localhost:5432/database
Run Code Online (Sandbox Code Playgroud)

${VARIABLE_NAME}不是语法正确?

environment-variables docker visual-studio-code vscode-settings

13
推荐指数
1
解决办法
4072
查看次数