ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Dockerized ROS2 development environment

asked 2018-02-09 01:59:30 -0500

thinwybk gravatar image

updated 2018-02-09 02:10:19 -0500

Is there a sandboxed development environment for ROS2? (The/one ROS1 equivalent: rosdocked )

I identified 3 different use cases with potentially different docker Images:

  • ROS2 core package development
  • ROS2 application development
  • ROS2 + ROS1 application development
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2018-02-20 00:48:36 -0500

thinwybk gravatar image

updated 2018-03-08 14:46:35 -0500

For the first 2 use cases (ROS2 core package development, ROS2 application development) this Dockerfile from the official docker image repo can be used as base.

A first useable draft can be found here. (Is sufficient for me right now.)

edit flag offensive delete link more

answered 2018-02-09 02:56:37 -0500

ruffsl gravatar image

updated 2018-02-09 03:02:54 -0500

If your looking for Docker images for ROS2, they are already provided here:.

While the derived images are also currently hosted here:

The present tags target a range of uses, from core runtime environments, to ROS1 bridging.

As per sandboxes, the scripts one may use to start and hook into the container for GUI passthrough with x server, or mounting volumes or users or networks is about the same, so just as reusable.

edit flag offensive delete link more


I already used these images and they are quite helpful. I was looking for modified docker images which setup an development environment like rosdocked does.

thinwybk gravatar image thinwybk  ( 2018-02-09 05:07:53 -0500 )edit

I'm not so sure you would want to bake/hardcode those environment variables, user id, workspces, etc into the image that could otherwise simply be configured at runtime. For example:

ruffsl gravatar image ruffsl  ( 2018-02-10 00:08:07 -0500 )edit

Doing so just reduces the portability of your development image, say for example you wanted to share the image with someone's else to demonstrate a runtime error. They might not necessarily have the same user or group id for their account on their machine as you did on yours.

ruffsl gravatar image ruffsl  ( 2018-02-10 00:10:23 -0500 )edit

Thanks a lot for that hint. You are totally right. I didn't consider that option so far.

thinwybk gravatar image thinwybk  ( 2018-02-10 08:09:37 -0500 )edit

There is a repo which creates a ROS2 dev env ros2_experimental. However it seems to be outdated w.r.t. current linux dev env setup instructions.

thinwybk gravatar image thinwybk  ( 2018-02-17 06:18:28 -0500 )edit

@ruffsl I tried to build your docker demo but it failed like described here.

thinwybk gravatar image thinwybk  ( 2018-02-17 11:08:30 -0500 )edit

I copy & pasted instructions of the Linux dev env setup into the Dockerfile in this ros2-devenv (branch: core). However it doesn't build successfully as well...

thinwybk gravatar image thinwybk  ( 2018-02-17 11:34:51 -0500 )edit

Here is yet another repo which used OpenSplice: docker-ros2-ospl-ce (I've not tried it yet.)

thinwybk gravatar image thinwybk  ( 2018-02-17 11:36:11 -0500 )edit

Question Tools



Asked: 2018-02-09 01:59:30 -0500

Seen: 938 times

Last updated: Mar 08 '18