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 应用程序转发的文档。 因此,我们无法在此处提供具体说明。
