Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

rewire

BuildVersionPowered byDocker Hub

rewire-docker

Docker images for Rewire — a drop-in ROS 2 bridge for Rerun.

Try rewire without installing anything on your host. Each image includes ROS 2, rewire, zenohd, and zenoh-bridge-ros2dds.

Images

TagROS 2UbuntuArchitecture
rewirerun/rewire:humbleHumble22.04amd64, arm64
rewirerun/rewire:jazzyJazzy24.04amd64, arm64
rewirerun/rewire:kiltedKilted24.04amd64, arm64
rewirerun/rewire:lyricalLyrical26.04amd64, arm64

Every tag also has a version-pinned variant, e.g. rewirerun/rewire:jazzy-0.7.0.

There is no latest tag — the distro tag is the latest build for that distro, so always pull by distro.

Quick Start

docker pull rewirerun/rewire:humble
docker run --rm rewirerun/rewire:humble rewire --version
docker run --rm rewirerun/rewire:humble rewire types

Docker Compose

Three networking scenarios are available via profiles:

docker compose --profile dds up # DDS multicast (default ROS 2)
docker compose --profile zenoh up # Full Zenoh (rmw_zenoh_cpp + router)
docker compose --profile zenoh-bridge up # DDS nodes + zenoh-bridge-ros2dds

Each profile starts a talker node and rewire, saving a recording to ./data/recording.rrd.

The scenarios default to Humble. Set REWIRE_IMAGE to run them on another distro:

REWIRE_IMAGE=rewirerun/rewire:lyrical docker compose --profile dds up

Running with Your Own Nodes

Start a ROS 2 node inside the container:

docker run --rm --network host rewirerun/rewire:humble \
ros2 run demo_nodes_cpp talker

In another terminal, bridge to Rerun:

docker run --rm --network host rewirerun/rewire:humble \
rewire record --all

Save a Recording

docker run --rm --network host -v $(pwd)/data:/data rewirerun/rewire:humble \
rewire record --all --save /data/recording.rrd

X11 Forwarding (Linux)

xhost +local:docker
docker run --rm --network host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
rewirerun/rewire:humble rewire record --all

Interactive Shell

docker run --rm -it --network host rewirerun/rewire:humble bash

ROS 2 is already sourced. Run any ROS 2 or rewire command directly.

What's Inside

ComponentSourcePurpose
ROS 2 Humble/Jazzy/Kilted/LyricalOSRF aptRun nodes, replay bags
rewireGitHub ReleasesBridge ROS 2 topics to Rerun
zenohdconda-forge via pixiZenoh router
zenoh-bridge-ros2ddsEclipse ZenohDDS ↔ Zenoh bridge
demo_nodes_cppOSRF aptExample talker/listener
tf2_rosOSRF aptTF transform broadcasting
rmw_cyclonedds_cppOSRF aptCycloneDDS RMW
rmw_fastrtps_cppOSRF aptFastDDS RMW
rmw_zenoh_cppOSRF aptZenoh RMW

End-to-End Test

Verify everything works in one command:

docker run --rm rewirerun/rewire:humble bash -c ' ros2 run demo_nodes_cpp talker & sleep 3 timeout 10 rewire record --all --save /tmp/test.rrd 2>&1 kill %1 2>/dev/null SIZE=$(stat -c%s /tmp/test.rrd 2>/dev/null || echo 0) if [ "$SIZE" -gt 100 ]; then echo "PASS: recording is $SIZE bytes" else echo "FAIL: recording too small or missing" exit 1 fi'

Build Locally

docker build -t rewire:humble .
docker build --build-arg ROS_DISTRO=jazzy -t rewire:jazzy .
docker build --build-arg ROS_DISTRO=kilted -t rewire:kilted .
docker build --build-arg ROS_DISTRO=lyrical -t rewire:lyrical .

Build Arguments

ArgumentDefaultDescription
ROS_DISTROhumbleROS 2 distribution (humble, jazzy, kilted, lyrical)
REWIRE_VERSION0.3.1Rewire release version
ZENOH_BRIDGE_VERSION1.8.0zenoh-bridge-ros2dds version

About

Docker images for Rewire — a drop-in ROS 2 bridge for Rerun

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages