Best practices for Docker-based ROS2 development including multi-stage Dockerfiles, docker-compose for multi-container robotic systems, DDS discovery across containers, GPU passthrough for perception, and dev-vs-deploy container patterns.
SkillScore87Maintained
Automatic
◆DevOps & SRE pack
Last verified 8/5/2026
What it changes
Passed 20 of 23 test cases with the skill, and 19 of 23 without it.
Without skill83%
With skill87%
Checks it passed that the model alone missed
Selects macvlan network driver with parent interface configuration.
Specifies that DDS multicast discovery operates natively over macvlan.
Configures ROS_DOMAIN_ID using environment variable fallback syntax ROS_DOMAIN_ID=${ROS_DOMAIN_ID:-0}.
2 fixed18 passed either way2 still failing1 broke
Pass-rate lift
+4 pp
Tokens
+417%
Agent turns
0%
Response time
+6%
Model gemini-3.6-flashMeasured 8/5/2026v120 of 23 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 2
Prompt
Our mobile robot project runs multiple ROS2 nodes across a motor driver, perception pipeline, and navigation bringup. I need a docker-compose.yml setup that configures these as separate microservices, incorporates hardware access for USB cameras/serial controllers, handles graphical RViz debugging, and uses compose profiles so dev tools don't run in production. Please output the full compose YAML file along with host setup commands for display/USB permissions.
What was checked, without and with the skill
Checked
Without skill
With skill
Configures ROS_DOMAIN_ID using environment variable fallback syntax ROS_DOMAIN_ID=${ROS_DOMAIN_ID:-0}.
Missed
Passed
Defines separate Docker Compose services for motor driver, perception, and navigation subsystems.
Passed
Passed
Assigns a dev profile to the RViz display service.
Passed
Passed
case-02 · gemini-3.6-flash · 8/5/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md1086 linessingle file
Docker-Based ROS2 Development Skill
When to Use This Skill
Writing Dockerfiles for ROS2 workspaces with colcon builds
Setting up docker-compose for multi-container robotic systems
Debugging DDS discovery failures between containers (CycloneDDS, FastDDS)
Configuring GPU passthrough with NVIDIA Container Toolkit for perception nodes
Forwarding X11 or Wayland displays for rviz2 and rqt tools
Managing USB device passthrough for cameras, LiDARs, and serial devices
Building CI/CD pipelines with Docker-based ROS2 builds and test runners
Creating devcontainer configurations for VS Code with ROS2 extensions
Optimizing Docker layer caching for colcon workspace builds
Designing dev-vs-deploy container strategies with multi-stage builds
ROS2 Docker Image Hierarchy
Official OSRF images follow a layered hierarchy. Always choose the smallest base that satisfies dependencies.
Security hardening and best practices for robotic systems, covering SROS2 DDS security, network segmentation, secrets management, secure boot, and the physical-cyber safety intersection. Use this skill when securing ROS2 communications, configuring DDS encryption and access control, hardening robot onboard computers, managing certificates and credentials, setting up network segmentation for robot fleets, or addressing the unique security challenges where cyber vulnerabilities become physical saf