Docker

Docker 化的 SUMO#

对于初学者来说,从源代码构建和安装 SUMO 并非易事。 Docker 是解决此问题的流行工具。 SUMO 提供了 Dockerfiles预构建的 Docker 镜像 供使用。

可用的 Dockerfiles#

SUMO 仓库中有几个可用的 Dockerfiles。 要构建它们,请检出 SUMO 仓库,并在仓库的 build_config/docker 目录下使用以下命令:

    docker build -f {NAME_OF_DOCKERFILE} .

Note

确保在命令末尾包含点号。

以下是包含 SUMO 的可用 Dockerfiles:

Dockerfile 描述
Dockerfile.ubuntu.git 包含完整 SUMO 安装(二进制文件、文档、TraCI 等)和 JuPedSim 的镜像,基于 Ubuntu Jammy (22.04)。
构建此镜像时,使用仓库中最新版本的 SUMO。
此镜像每晚构建并上传到容器注册表。
它也会为每个稳定版本构建并打上标签。
Dockerfile.fedora 基于当前 Fedora 开发版本 (rawhide) 的 SUMO 安装镜像。
构建此镜像时,使用仓库中最新版本的 SUMO。
Dockerfile.ubuntu.latest 基于 Ubuntu Jammy (22.04) 的镜像,通过 APT 包管理器安装 SUMO。
此镜像不从源代码构建 SUMO,因此始终使用稳定版本。

以下 Dockerfiles 提供构建环境:

Dockerfile 描述
Dockerfile.jenkins-build 用于在 Jenkins 上构建 SUMO 的环境。安装构建 SUMO 所需的所有包,但不包含任何 SUMO 二进制文件。
Dockerfile.manylinux2014 用于创建 manylinux Python wheels 的构建环境,已通过额外的预安装包进行调整。

注册表中的可用镜像#

SUMO 将镜像发布到 GitHub 容器注册表,可以立即拉取和使用。 发布的镜像是从 Dockerfile.ubuntu.git Dockerfile 构建的。

要使用任何上传的镜像,请引用 ghcr.io/eclipse-sumo/sumo:${TAG}(例如 docker pull ghcr.io/eclipse-sumo/sumo:main)。

以下是可用的标签:

标签 描述
main nightly 包含仓库中当前版本 SUMO 的每日构建。
vX_Y_Z (例如 v1_21_0) 随相应版本一起创建的镜像版本。包含匹配稳定版本的 SUMO。
latest 引用最新稳定版本的镜像(例如 v1_21_0)。

如何使用 Docker 化的 SUMO#

完整的示例可在容器化 SUMO 教程中找到。

运行准备好的模拟的快速示例如下:

   docker run \
      -v /path/to/your/simulation/data:/data \
      ghcr.io/eclipse-sumo/sumo:main \
      sumo /data/simulation.sumocfg

此用例的一个场景是:在安装了 SUMO 的计算机上准备模拟数据,然后在无需安装 SUMO 的服务器上运行模拟。

容器镜像也包含图形应用程序。 但是,配置它们以供使用取决于您的操作系统和图形环境(例如 X11、Wayland)。 有关指导,请查阅 Docker 关于 GUI 应用程序转发的文档。 因此,我们无法在此处提供具体说明。