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.
| Tag | ROS 2 | Architecture |
|---|---|---|
ghcr.io/rewire-run/rewire:humble |
Humble | amd64, arm64 |
ghcr.io/rewire-run/rewire:jazzy |
Jazzy | amd64, arm64 |
docker pull ghcr.io/rewire-run/rewire:humble
docker run --rm ghcr.io/rewire-run/rewire:humble rewire --version
docker run --rm ghcr.io/rewire-run/rewire:humble rewire typesThree 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-ros2ddsEach profile starts a talker node and rewire, saving a recording to ./data/recording.rrd.
Start a ROS 2 node inside the container:
docker run --rm --network host ghcr.io/rewire-run/rewire:humble \
ros2 run demo_nodes_cpp talkerIn another terminal, bridge to Rerun:
docker run --rm --network host ghcr.io/rewire-run/rewire:humble \
rewire record --alldocker run --rm --network host -v $(pwd)/data:/data ghcr.io/rewire-run/rewire:humble \
rewire record --all --save /data/recording.rrdxhost +local:docker
docker run --rm --network host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
ghcr.io/rewire-run/rewire:humble rewire record --alldocker run --rm -it --network host ghcr.io/rewire-run/rewire:humble bashROS 2 is already sourced. Run any ROS 2 or rewire command directly.
| Component | Source | Purpose |
|---|---|---|
| ROS 2 Humble/Jazzy | OSRF apt | Run nodes, replay bags |
| rewire | GitHub Releases | Bridge ROS 2 topics to Rerun |
| zenohd | conda-forge via pixi | Zenoh router |
| zenoh-bridge-ros2dds | Eclipse Zenoh | DDS ↔ Zenoh bridge |
| demo_nodes_cpp | OSRF apt | Example talker/listener |
| tf2_ros | OSRF apt | TF transform broadcasting |
| rmw_cyclonedds_cpp | OSRF apt | CycloneDDS RMW |
| rmw_fastrtps_cpp | OSRF apt | FastDDS RMW |
| rmw_zenoh_cpp | OSRF apt | Zenoh RMW |
Verify everything works in one command:
docker run --rm ghcr.io/rewire-run/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
'docker build -t rewire:humble .
docker build --build-arg ROS_DISTRO=jazzy -t rewire:jazzy .| Argument | Default | Description |
|---|---|---|
ROS_DISTRO |
humble |
ROS 2 distribution |
REWIRE_VERSION |
0.2.6 |
Rewire release version |
ZENOH_BRIDGE_VERSION |
1.8.0 |
zenoh-bridge-ros2dds version |