Skip to content

rewire-run/rewire-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Version Powered by GHCR

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

Tag ROS 2 Architecture
ghcr.io/rewire-run/rewire:humble Humble amd64, arm64
ghcr.io/rewire-run/rewire:jazzy Jazzy amd64, arm64

Quick Start

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 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.

Running with Your Own Nodes

Start a ROS 2 node inside the container:

docker run --rm --network host ghcr.io/rewire-run/rewire:humble \
    ros2 run demo_nodes_cpp talker

In another terminal, bridge to Rerun:

docker run --rm --network host ghcr.io/rewire-run/rewire:humble \
    rewire record --all

Save a Recording

docker run --rm --network host -v $(pwd)/data:/data ghcr.io/rewire-run/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 \
    ghcr.io/rewire-run/rewire:humble rewire record --all

Interactive Shell

docker run --rm -it --network host ghcr.io/rewire-run/rewire:humble bash

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

What's Inside

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

End-to-End Test

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
'

Build Locally

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

Build Arguments

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

About

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

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors