VS Code 1.81 远程开发更新:Remote Tunnels 服务模式、@devcontainers/cli 免工具链安装与 Feature 依赖锁定

发布时间:2026/10/11 19:09:48
VS Code 1.81 远程开发更新:Remote Tunnels 服务模式、@devcontainers/cli 免工具链安装与 Feature 依赖锁定
文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载本篇技术指南基于仓库内的 2023 年 7 月远程开发发布说明remote-release-notes/v1_81.md系统解读该版本在 Tunnels 与 Dev Containers 两个方向上的关键更新从 VS Code 界面一键将远程隧道安装为系统服务、彻底移除devcontainers/cli的构建工具链依赖以及在 lockfile 中记录 Dev Container Feature 依赖。读完本文你将掌握这三项新特性的启用方式、对应 CLI 命令与配置参数并能结合仓库源码文档理解其底层设计意图。隧道Tunnels从 VS Code 内将隧道安装为系统服务特性背景Remote Tunnels 与系统服务化的动机Remote - Tunnels 扩展允许你在任意一台远程机器如桌面 PC 或虚拟机上建立安全隧道从而在无需 SSH 的前提下从任何安装了 VS Code 的客户端连接该机器详见 docs/remote/tunnels.md。隧道把数据从一张网络安全地传输到另一张网络扩展程序会在远程操作系统上安装 VS Code Server并将代码执行、扩展运行全部放在远程端。在 1.81 之前通过Remote Tunnels: Turn on Remote Tunnel Access命令开启隧道访问后隧道进程的生命周期与当前 VS Code 实例绑定一旦退出 VS Code隧道随即失效文档 docs/remote/tunnels.md 明确提示远程机器只有在 VS Code 保持运行时才可通过隧道访问。对于需要长期对外提供开发入口的机器例如持续运行的构建机或服务器这显然不够理想。新特性两种运行模式二选一1.81 版本中执行Remote Tunnels: Turn on Remote Tunnel Access命令时用户将获得两个选项在当前 VS Code 实例中运行隧道——保持原有行为隧道生命周期跟随当前窗口作为系统服务安装——将隧道安装为操作系统级服务使隧道在 VS Code 关闭后依然保持运行。服务模式在以下平台得到支持WindowsmacOS基于 systemd 的 Linux 系统当以服务模式安装后Turn off Remote Tunnel Access命令将承担双重职责除了关闭隧道访问还会卸载已安装的系统服务避免残留后台进程。CLI 侧对应的服务管理命令服务化能力同样通过codeCLI 暴露便于在没有图形界面的远程机器上使用。在 docs/remote/tunnels.md 的常见问题如何保持隧道持续运行中给出了两条配套命令code tunnel service install # 将隧道安装为系统服务 code tunnel service uninstall # 移除已安装的隧道服务此外若不想安装服务、仅希望防止远程机器休眠导致隧道中断可以使用code tunnel --no-sleep # 阻止远程机器进入休眠状态完整的隧道子命令可通过code tunnel --help查看更多 CLI 用法参见 docs/configure/command-line.md#create-remote-tunnel。值得注意的是从 1.77 版本起隧道实例已支持去重singleton同一台机器上多次触发隧道开启只会保留一个运行实例其余进程转为监控模式参见 remote-release-notes/v1_77.md1.81 之后的 1.82 版本又修复了多项导致连接不稳定的长期问题参见 remote-release-notes/v1_82.md。服务化模式与 singleton 机制结合为常驻隧道提供了稳定的运行基础。Dev Containersdevcontainers/cli 安装全面简化什么是 Dev Container CLIDev Container CLI 是 Development Containers Specification。该 CLI 既能作为独立工具直接使用也能被集成进产品体验如 Dev Containers 扩展和 Codespaces支持单容器模式与 Docker Compose 多容器模式。1.81 之前的安装门槛在 1.81 版本之前通过 npm 安装devcontainers/cli需要完整的本机编译工具链。仓库中的 docs/devcontainers/devcontainer-cli.md 明确记录了这一前置要求PythonNode.js版本 14 或更高C/C 编译工具链用于编译某个 npm 依赖这意味着在轻量级或受限环境中安装 CLI 往往会因缺少编译工具而失败成为使用 Dev Container CLI 的主要障碍。1.81 新特性一条命令完成安装1.81 版本移除了这一工具链依赖。现在只需一条命令npm install -g devcontainers/cli即可全局安装并立即使用。安装后可运行devcontainer command查看帮助文本完整的子命令列表如下来自 docs/devcontainers/devcontainer-cli.mdCommands: devcontainer up Create and run dev container devcontainer build [path] Build a dev container image devcontainer run-user-commands Run user commands devcontainer read-configuration Read configuration devcontainer features Features commands devcontainer templates Templates commands devcontainer exec cmd [args..] Execute a command on a running dev container Options: --help Show help [boolean] --version Show version number [boolean]说明若你通过 VS Code 内的Dev Containers: Install devcontainer CLI命令安装帮助列表中还会额外出现open子命令用于在 VS Code 中打开 dev container。此外devcontainer build --workspace-folder my_repo --push true --image-name my_image:version支持在 CI 中预构建镜像便于与 GitHub Actions、Azure DevOps 等流水线集成。仓库内文档一致性提示仓库中 docs/devcontainers/devcontainer-cli.md 的安装章节仍保留着需要 Python、Node.js 14、C/C的旧说明而 remote-release-notes/v1_81.md 已明确宣告不再需要构建工具链。两者并存体现了文档更新与版本发布的时序差异——以最新发布说明为准无需工具链即可直接npm install -g devcontainers/cli。安装后的快速验证参照 docs/devcontainers/devcontainer-cli.md 的入门示例安装完成后可用官方 Rust 示例项目做冒烟测试git clone https://github.com/microsoft/vscode-remote-try-rust devcontainer up --workspace-folder path-to-vscode-remote-try-rustup命令会从容器镜像仓库拉取镜像并启动容器输出{outcome:success,...}即表示成功。随后可在容器内执行命令devcontainer exec --workspace-folder path-to-vscode-remote-try-rust cargo runDev Containers在 lockfile 中记录 Feature 依赖Dev Container Features 简述Dev Container Features 是可复用、可分享的安装代码与配置单元在devcontainer.json的features字段中引用一个 Feature即可为开发容器快速加入额外的工具、运行时或库详见 docs/devcontainers/containers.md#dev-container-features。典型写法如下features: { ghcr.io/devcontainers/features/github-cli:1: { version: latest } }从 1.78 实验性 lockfile 到 1.81 的 Feature 依赖记录Dev Container Feature 的 lockfile 机制最初在 1.78 版本以实验形态引入参见 remote-release-notes/v1_78.md其核心目标有三个记住 semver 版本实际解析到的具体版本保证构建可复现——例如ghcr.io/devcontainers/features/github-cli:1可能实际解析为1.0.10提升容器镜像构建的缓存命中率——使用与上次构建相同的源让 Docker 层缓存尽量复用检测特定版本 Feature 内容的意外变化——通过完整性摘要integrity捕捉内容被篡改的迹象。1.81 版本在此基础上做了重要补充Feature 自身的依赖Feature dependencies现在也被记录进devcontainer-lock.json使锁定范围从 Feature 本身扩展到了其依赖链进一步加固可复现性与供应链安全。lockfile 中的记录结构以 1.78 发布说明中给出的 GitHub CLI Feature 为例{ features: { ghcr.io/devcontainers/features/github-cli:1: { version: 1.0.10, resolved: ghcr.io/devcontainers/features/github-clisha256:8a1705f62d358565394a868685047e57a8729cd88462a665967bea79a550b7c7, integrity: sha256:8a1705f62d358565394a868685047e57a8729cd88462a665967bea79a550b7c7 } } }其中version是实际解析到的 Feature 版本resolved是 Feature 在 OCI 注册表中的精确镜像摘要integrity是用于校验内容完整性的 SHA-256 摘要。启用方式dev.containers.experimentalLockfile 用户设置lockfile 的使用通过 VS Code 用户设置开关启用发布说明中附带的设置界面截图位于仓库 remote-release-notes/images/v1_81/lockfile-setting.pngdev.containers.experimentalLockfile: true需要强调的是该特性当前仍处于实验阶段官方明确表示推出 lockfile 是为了收集社区反馈其行为与格式未来可能发生变更。在 Dev Containers 扩展的实际使用中开启该设置后构建 dev container 时便会生成/更新devcontainer-lock.json供版本控制系统跟踪。小结与延伸阅读1.81 版本的远程开发更新可归纳为三条主线更新项核心价值关键入口Tunnels 服务化安装隧道不再随 VS Code 退出而中断Remote Tunnels: Turn on Remote Tunnel Accesscode tunnel service installdevcontainers/cli 简化安装移除 Python / Node.js 14 / C/C 工具链要求npm install -g devcontainers/cliFeature 依赖记录进 lockfile依赖链级可复现与完整性校验设置dev.containers.experimentalLockfile如需深入推荐继续阅读仓库内以下材料隧道完整使用指南docs/remote/tunnels.md含 CLI 安装、UI 开启、Remote Explorer 视图、安全模型与常见问题隧道 CLI 命令参考docs/configure/command-line.md#create-remote-tunnelDev Container CLI 完整文档docs/devcontainers/devcontainer-cli.mdDev Container Features 详解docs/devcontainers/containers.md#dev-container-featureslockfile 特性首次引入说明含完整 JSON 示例remote-release-notes/v1_78.md赞分享文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载相关推荐VS Code 远程开发再进化统一 code CLI 与 Remote Tunnels 全攻略VS Code 远程开发再进化统一 code CLI 与 Remote Tunnels 全攻略 2022 年 12 月 7 日Visual Studio C文档教程VS Code Remote Tunnels 完全指南免 SSH 通过安全隧道访问任意远程开发机VS Code Remote Tunnels 完全指南免 SSH 通过安全隧道访问任意远程开发机 本文基于 VS Code 官方文档仓库中的 Remote T文档教程OpenHarmonyToolkitsPlaza/h2idl远程开发环境配置VS Code Remote与工具集成OpenHarmonyToolkitsPlaza/h2idl远程开发环境配置VS Code Remote与工具集成 一、开发痛点与解决方案 在鸿蒙应用开发过程OpenHarmony开发工具代码生成创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考