容器连接后固定的VS Code扩展版本丢失问题求助
解决VS Code Remote SSH连接容器后扩展版本号被移除的问题
针对你遇到的连接容器后nameConfig里扩展版本号被自动移除的问题,有几个可行的解决思路:
1. 锁定nameConfig文件的写入权限
既然VS Code会自动覆盖这个文件,直接把文件设为只读就能阻止修改:
- 找到你的nameConfig文件路径(通常在
~/.vscode/remote-containers/nameConfigs目录下) - 在终端执行命令设置只读权限:
chmod 444 /path/to/your/nameConfig.json - 如果之后需要修改配置,再改回可写权限:
chmod 644 /path/to/your/nameConfig.json
2. 用本地settings.json配置默认扩展
绕过nameConfig,直接在本地VS Code的settings.json里指定带版本号的扩展,连接容器时会优先读取这个配置,不会被自动覆盖:
打开本地VS Code的设置(快捷键Cmd+,),点击右上角的打开设置(JSON),添加以下内容:
"remote.containers.defaultExtensions": [ "ms-python.debugpy@2023.1.12492010", "ms-python.isort", "ms-python.python", "ms-python.vscode-pylance" ]
3. 使用项目级devcontainer.json配置
如果你的工作区是基于Dev Containers的,在项目根目录创建.devcontainer/devcontainer.json文件,写入带版本号的扩展配置:
{ "workspaceFolder": "/webapp/sites/www", "extensions": [ "ms-python.debugpy@2023.1.12492010", "ms-python.isort", "ms-python.python", "ms-python.vscode-pylance" ] }
这个文件属于项目配置,VS Code不会自动修改它,每次连接容器时都会读取这里的配置安装指定版本的扩展。
内容的提问来源于stack exchange,提问作者Lance
相关产品推荐
相关产品推荐

