在连接到容器之后或编译/调试之前,运行脚本以在VSCode中设置环境



我正在开发一个docker容器化的c++项目,该项目定义了shell脚本来设置编译和调试的环境(使用"source"(。它们有很多环境变量,可以随时更改,所以很难将它们全部移动到launch.json文件中(而且很难跟上(,所以我需要在编译或调试之前调用它们。

脚本只需要运行一次,所以如果有办法在连接到容器后运行它们,那将是最好的解决方案,但我找不到这样的解决方案。

我曾尝试在调试之前使用启动器中的"preLaunchTask"来运行任务,但该任务的shell似乎与调试shell不同。

有什么可以处理的吗?

目前,我正在使用一个任务来生成.env文件

printenv > ${workspaceFolder}/.preenv && . ${workspaceFolder}/setupEnv && 
printenv > ${workspaceFolder}/.postenv && grep -vFf 
${workspaceFolder}/.preenv ${workspaceFolder}/.postenv > 
${workspaceFolder}/.env

我让VSCode挂载一个目录作为容器的homedir,然后在该目录中放入一个包含必要设置的.bash_profile文件(或其他合适的shell启动文件(。

我的/path/to/.devcontainer/devcontainer.json包括:

"mounts": [
"source=${localWorkspaceFolder}/.devcontainer/home,target=/home/username,type=bind,consistency=delegated"
],
"remoteUser": "username",
"userEnvProbe": "loginShell",  // Ensures .bash_profile fires

然后,我的/path/to/.devcontainer/home/.bash_profile包含设置环境所需的调用。

相关内容

  • 没有找到相关文章

最新更新