开发容器

您可以使用开发容器来构建项目,如果您更喜欢简化的设置体验。这意味着您可以使用与团队其他成员相同的工具和依赖项,包括我们的持续集成(CI)工作流程,而无需担心在主机上安装依赖项。此外,使用开发容器使得在本地或远程开发环境之间切换变得简单,例如GitHub Codespaces。

See also

有关开发容器的更多信息,请参见以下内容:

什么是、为什么和如何?

让我们简要解释一下什么是开发容器、为什么您应该使用它们以及它们是如何工作的。

Hint

在这里我们假设使用VS Code,但同样适用于其他工具和服务,包括其他CLI、IDE等,例如:

什么是开发容器?

开发容器是一个Docker容器,里面包含您开发项目所需的所有工具和依赖项。它在一个自包含的环境中运行,与其他容器和您的主机机器隔离。这使您能够在任何地方可靠地为项目开发,特别是针对ROS所针对的Linux发行版,无论您的主机操作系统是什么。

为什么使用开发容器?

开发容器提供了一个共同且一致的开发环境。它确保团队中的每个人都使用相同的工具和依赖项。此外,它还使在项目之间切换变得容易,因为每个项目可以使用不同的容器。这在您处理多个使用不同版本相同工具和依赖项的项目时尤其有用,例如不同版本的ROS。

开发容器是如何工作的?

当您在VS Code中打开项目时,VS Code会检查位于项目根目录下的.devcontainer文件夹中的开发容器配置。如果找到了配置,它会提示您在容器中重新打开项目。如果您选择这样做,它会启动容器,连接到它,并将您的项目文件夹挂载到容器内。然后,您可以在容器中使用VS Code,就像在本地一样。在设置容器时,VS Code还可以尝试传递本地环境的一些有用方面,例如git用户配置、X11套接字等。

这与之前用于自定义和运行Docker容器进行开发的工具非常相似:

前提条件

要使用开发容器,您需要以下内容:

Note

您也可以直接从项目代码库使用GitHub Codespaces,或任何其他远程主机:

入门

使用开发容器入门非常简单,只需在VS Code中打开项目,可以选择以下两种方式:跟随通知提示在容器中重新打开项目,或显式打开命令面板(Ctrl+Shift+P),然后选择 Remote-Containers: Reopen in Container。这将创建一个新的容器,安装项目默认的 .devcontainer/devcontainer.json 配置文件中指定的任何扩展,并将项目的根目录挂载为工作区文件夹。一旦容器创建完成,VS Code将连接到它,您可以开始开发。

Tip

在VS Code中单击 Starting Dev Container (show log) 通知,可以实时观察容器启动的过程;而在命令面板中输入 Dev Containers: Show Log 则会列出所有可用的命令,以便您稍后查看和回顾这些日志文件。

在等待初始设置的过程中,您可以放松一下,喝杯咖啡,或者继续阅读以下指南,以了解有关创建和使用开发容器的更多信息,或如何在无头开发环境中可视化和利用图形用户界面。

安全

Caution

在启动派生的开发容器之前,请确保您信任工作区的作者和内容。

使用开发容器时需要注意:它们是强大的工具,但可能存在安全隐患,因为IDE扩展提供的任意代码执行能力使得这种自动化和便利性具有双重用途。在启动开发容器之前,请确保您信任工作区和作者。例如,在审查拉取请求时,请验证补丁是安全的,不会引入任何恶意代码。虽然在编译和运行已修补代码时,保持警惕是必要的,但使用具有提升权限或文件系统访问的容器时,这种谨慎就显得更加重要。

See also

有关信任工作区和扩展的一般信息,请参见以下内容:

  • Workspace Trust

    • VS Code用户指南:关于信任和配置工作区的信息。