Alpine Linux package builder for ROS (Robot Operating System)
docker pull ghcr.io/alpine-ros/ros-abuild:3.17-noetic
or build locally
docker build \
--build-arg ROS_DISTRO=noetic \
--build-arg ALPINE_VERSION=3.17 \
--build-arg ROS_PYTHON_VERSION=3 \
-t ghcr.io/alpine-ros/ros-abuild:3.17-noetic .
Run following command at the root of the ROS package repository:
docker run -it --rm \
-v $(pwd):/src:ro \
ghcr.io/alpine-ros/ros-abuild:3.17-noetic
($(pwd)
can be replaced by a full path to the ROS package repository.)
If *.rosinstall
file is present, packages specified in the file will be automatically cloned and built.
Create a directory to store packages.
mkdir -p /path/to/your/packages
Build and output generated packages to the directory.
docker run -it --rm \
-v $(pwd):/src:ro \
-v /path/to/your/packages:/packages \
ghcr.io/alpine-ros/ros-abuild:3.17-noetic
Create docker volume to store Alpine package cache, rosdep cache and gcc build cache.
docker volume create ros-abuild-apk
docker volume create ros-abuild-rosdep
docker volume create ros-abuild-ccache
Build with cache.
mkdir -p /path/to/your/packages # Create a directory to store packages.
docker run -it --rm \
-v $(pwd):/src:ro \
-v ros-abuild-apk:/var/cache/apk \
-v ros-abuild-rosdep:/home/builder/.ros/rosdep \
-v ros-abuild-ccache:/ccache \
-e SKIP_ROSDEP_UPDATE=yes \
-e ENABLE_CCACHE=yes \
ghcr.io/alpine-ros/ros-abuild:3.17-noetic