开发容器

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

参见

有关开发容器的更多信息,请参阅此处:

什么、为什么、如何?

让我们简要解释一下开发容器是什么,为什么应该使用它们以及它们的工作原理

提示

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

什么是开发容器?

Dev容器是一个包含开发项目所需工具和依赖的Docker容器。它在一个自包含的环境中运行,并与其他容器和主机机器隔离开来。这使得您可以在任何地方可靠地为项目进行开发,特别是针对ROS的Linux发行版,而不受主机机器操作系统的影响。

为什么要使用开发容器?

Dev容器提供了一个共享和一致的开发环境。它确保团队中的每个人都使用相同的工具和依赖项。它还可以轻松切换项目,因为每个项目可以使用不同的容器。如果您同时在多个项目上工作,并且这些项目使用不同版本的相同工具和依赖项(如不同版本的ROS),这将特别有用。

开发容器是如何工作的?

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

这与早期用于定制和运行Docker容器的工具非常相似:

前提条件

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

注解

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

入门

使用开发容器的入门方法就是通过以下方式在VS Code中打开项目:要么按照通知提示重新打开容器中的项目,要么显式地打开命令面板(Crtl+Shift+P),然后选择 Remote-Containers: Reopen in Container。这将创建一个新的容器,在项目的默认 .devcontainer/devcontainer.json 配置文件中安装指定的扩展,并将项目的根目录挂载为工作区文件夹。容器创建完成后,VS Code将连接到容器,您可以开始开发。

小技巧

在 VS Code 中单击启动 Dev Container (显示日志)通知,可以实时观察制作过程,同时在命令面板中输入Dev Containers: Show Log将列出所有可用的命令以供查看和重新访问这些日志文件。

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

安全性

小心

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

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

参见

有关信任工作区和扩展的更多信息可以在此处找到: