连接到容器后或编译/调试之前,在VSCode中运行脚本以设置环境 我正在研究一个容器容器C++项目,它定义了shell脚本来设置环境(使用“源”)进行编译和调试。它们有很多环境变量,并且随时都可能更改,因此很难将它们全部移动到launch.json文件中(而且很难跟上),因此我需要在编译或调试之前调用它们

连接到容器后或编译/调试之前,在VSCode中运行脚本以设置环境 我正在研究一个容器容器C++项目,它定义了shell脚本来设置环境(使用“源”)进行编译和调试。它们有很多环境变量,并且随时都可能更改,因此很难将它们全部移动到launch.json文件中(而且很难跟上),因此我需要在编译或调试之前调用它们,c++,vscode-debugger,vscode-remote,C++,Vscode Debugger,Vscode Remote,脚本只需要运行一次,因此,如果在连接到容器后有一种方法运行它们,这将是最好的解决方案,但是我找不到类似的方法 我曾尝试在调试之前使用启动器中的“preLaunchTask”运行任务,但任务的shell似乎与调试shell不同 有没有办法处理这件事 目前,我正在使用一个任务生成一个.env文件 printenv > ${workspaceFolder}/.preenv && . ${workspaceFolder}/setupEnv && printenv

脚本只需要运行一次,因此,如果在连接到容器后有一种方法运行它们,这将是最好的解决方案,但是我找不到类似的方法

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

有没有办法处理这件事

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

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

我让VSCode挂载一个目录作为容器的homedir,然后在该目录中放置一个
.bash\u 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_配置文件
包含设置我的环境所需的调用。

我让VSCode装载一个目录作为容器的homedir,然后在该目录中放置一个
.bash_配置文件
文件,其中包含必要的设置(或其他合适的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_配置文件
包含设置我的环境所需的调用