如何在会话创建前通过用户设置禁用VSCode扩展
code-server 会话创建前预禁用扩展的可行方案
方案1:预生成全局状态配置文件内置到镜像
code-server的扩展禁用状态确实不存储在settings.json中,而是存放在全局状态存储文件$HOME/.local/share/code-server/User/state/global.json内,你可以提前手动操作生成符合要求的配置文件:
- 先临时启动一次code-server实例,在UI中禁用所有需要默认关闭的扩展
- 将生成的
global.json文件导出,在Docker构建阶段直接拷贝到镜像内对应用户的对应路径,注意保持文件权限和运行code-server的用户权限一致,避免实例启动后读不到配置
方案2:通过启动参数动态禁用扩展(更灵活)
code-server原生支持启动时通过参数指定禁用的扩展,优先级高于本地配置,不需要提前修改任何配置文件:
- 首先通过
code-server --list-extensions命令查询所有预安装扩展的完整ID(格式为发布者.扩展名) - 启动时添加
--disable-extension <扩展ID>参数即可禁用对应扩展,多扩展可重复添加该参数,示例启动命令:
code-server --disable-extension ms-python.python --disable-extension dbaeumer.vscode-eslint
- Docker构建时可以直接把参数写入ENTRYPOINT或CMD,示例Dockerfile配置:
# 省略前面的构建步骤 ENTRYPOINT ["code-server", "--bind-addr", "0.0.0.0:8080", "--disable-extension", "ms-python.python", "--disable-extension", "dbaeumer.vscode-eslint"]
注意事项
- 如果需要对不同用户动态调整禁用列表,优先选择启动参数方案,不需要修改镜像内容
- 扩展ID不要写错,否则参数不生效,可通过list-extensions命令核对所有已安装扩展的准确ID
内容的提问来源于stack exchange,提问作者Nenzo
相关产品推荐
相关产品推荐

