Skip to content

Commit 1309992

Browse files
committed
Expand upon runner vs installer comparison
1 parent eeee2a7 commit 1309992

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

ros/content.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"]
2828
Note: all ROS images include a default entrypoint that sources the ROS environment setup before executing the configured command, in this case the demo packages launch file. You can then build and run the Docker image like so:
2929

3030
```console
31-
$ docker build -t my/ros:app .
32-
$ docker run -it --rm my/ros:app
31+
$ docker build -t my/ros:installer .
32+
$ docker run -it --rm my/ros:installer
3333
[INFO] [launch]: process[talker-1]: started with pid [813]
3434
[INFO] [launch]: process[listener-2]: started with pid [814]
3535
[INFO] [talker]: Publishing: 'Hello World: 1'
@@ -146,18 +146,22 @@ The example above uses consists of three sequential stages. The `cacher` stage f
146146
- Builds and installs for just selected packages amongst workspace
147147
- Only workspace install artifacts are copied into final layers
148148

149-
For more advance examples such as daisy chaining multiple overlay workspaces to improve caching of docker image build layers, using tools such as ccache to accelerate compilation with colcon, or using buildkit to save build time and bandwidth even when dependencies change, the project `Dockerfile`s in the [Navigation2](https://github.com/ros-planning/navigation2) repo are excellent resources.
149+
For comparison, the resulting `runner` image is similar in size to the earlier `installer` example. This allows you to develop and distribute custom ROS packages without significantly increasing image size compared to pre-built Debian installations:
150150

151151
```console
152-
$ docker image ls ros --format "table {{.Tag}}\t{{.Size}}"
152+
$ docker image ls my/ros --format "table {{.Tag}}\t{{.Size}}"
153153
TAG SIZE
154-
rolling-ros-core 489MB
155154
installer 504MB
156155
runner 510MB
157-
rolling 876MB
158156
builder 941MB
157+
$ docker image ls ros --format "table {{.Tag}}\t{{.Size}}"
158+
TAG SIZE
159+
rolling-ros-core 489MB
160+
rolling 876MB
159161
```
160162

163+
For more advance examples such as daisy chaining multiple overlay workspaces to improve caching of docker image build layers, using tools such as ccache to accelerate compilation with colcon, or using buildkit to save build time and bandwidth even when dependencies change, the project `Dockerfile`s in the [Navigation2](https://github.com/ros-planning/navigation2) repo are excellent resources.
164+
161165
## Deployment use cases
162166

163167
This dockerized image of ROS is intended to provide a simplified and consistent platform to build and deploy distributed robotic applications. Built from the [official Ubuntu image](https://hub.docker.com/_/ubuntu/) and ROS's official Debian packages, it includes recent supported releases for quick access and download. This provides roboticists in research and industry with an easy way to develop, reuse and ship software for autonomous actions and task planning, control dynamics, localization and mapping, swarm behavior, as well as general system integration.

0 commit comments

Comments
 (0)