Windows VS Code远程SSH连接Linux后,自定义Docker Attach命令无效求助
自定义VS Code Docker Attach命令(SSH远程场景)
问题背景
- 运行场景:Windows 端 VS Code 通过 SSH 连接至 Linux 主机,再通过 VS Code Docker 插件以
docker exec方式 Attach 到容器,原流程可正常运行 - 需求:修改默认的 Attach 命令,在
docker exec后添加-u username参数,以指定用户进入容器 - 遇到的问题:已在本地和远程的
settings.json中配置如下参数,但无任何效果:
... "containers.commands.build": "${containerCommand} build --pull --rm -f \"${dockerfile}\" -t ${tag} \"${context}\"", "containers.commands.attach": "${containerCommand} exec -u username -it ${containerId} ${shellCommand}", "containers.containers.groupBy": "ContainerId" ...
解决方案
1. 确保配置在正确位置
由于是通过SSH操作远程主机上的容器,配置必须放在远程主机的VS Code设置中,而非本地。操作方式:
- 在VS Code远程窗口中,按下
Ctrl+,打开设置面板 - 搜索
containers.commands.attach,直接在远程设置栏中修改 - 或者通过命令面板(
Ctrl+Shift+P)执行Remote: Open Remote Settings,编辑远程的settings.json
2. 修正命令模板
你当前的配置重复了exec -it部分,导致生成的命令格式错误。正确的配置应该复用${containerCommand}变量(该变量已包含docker exec -it),仅追加-u username参数:
"containers.commands.attach": "${containerCommand} -u username ${containerId} ${shellCommand}"
3. 重启远程窗口生效
修改配置后,通过命令面板执行Remote: Reconnect Window,重新连接远程主机,让新配置生效。
4. 验证结果
Attach到容器后,执行whoami命令,确认当前用户是否为你指定的username。
内容的提问来源于stack exchange,提问作者Robber Pen
相关产品推荐
相关产品推荐

