从 vscode-remote-WSL 中启动 vscode-remote-containers 时如何设置环境变量?

How to set the environmental variables when starting vscode-remote-containers from within vscode-remote-WSL?

为了构建我的远程环境,我需要设置几个环境变量(它们在 docker-compose 文件中使用)。这些是在我的 ZSH 环境中设置的,因此 运行 docker-compose 构建按预期从终端运行。但是这些变量在 运行 和 reopen in container 命令时不可用。 How/where 我可以设置 vscode 在 运行 docker-compose 构建时可用的变量吗?请注意,我是 运行 vscode-remote-containers 来自 vscode-remote-WSL.

你试过了吗devcontainer.json

"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}"
}

https://code.visualstudio.com/docs/remote/containers-advanced

从 vscode 日志可以明显看出它调用 wsl -d Ubuntu -e /bin/sh ..... docker-compose up 来构建容器,因此没有考虑 .bashrc 或其他设置中的任何环境变量。我通过将所需变量放入 WSLENV 来解决它,如下所示:WSLENV=REQUIRED_VAR/u:ANOTHER_REQUIRED_VAR/u 然后它们可用于 docker-compose when 运行 from wsl.