Using ROS on Alpine Linux aids development and deployment by reducing storage space and installation time when compared to Ubuntu based installations. For example, the ros_core
meta-package requires about one-third of the installation time on Alpine and is substantially smaller. Reduced build times and smaller image sizes speed-up continuous integration tests and deployment to container-based robotic systems.
For example, following Dockerfile builds a docker image containing neonavigation
and rviz
packages. It is runnable on Linux with the Intel graphics by the command below.
# Dockerfile
FROM ghcr.io/alpine-ros/alpine-ros:noetic-3.14-bare
RUN apk add --no-cache \
ros-${ROS_DISTRO}-neonavigation-launch \
ros-${ROS_DISTRO}-rviz \
ttf-droid \
mesa-dri-intel
CMD roslaunch neonavigation_launch demo.launch
$ docker build -t alpine-noetic-neonavigation .
$ xhost + # allow x11 access from the container
$ docker run --rm \
-v "/tmp/.X11-unix:/tmp/.X11-unix" \
--device "/dev/dri:/dev/dri" \
-e DISPLAY \
alpine-noetic-neonavigation
Complete descriptions and comparison with Ubuntu ROS are available at https://github.com/alpine-ros/package-install-demo.
Alpine Linux package builder for ROS (Robot Operating System).