navigation2 icon indicating copy to clipboard operation
navigation2 copied to clipboard

Refactor Docker and Dev Container setup using Buildkit

Open ruffsl opened this issue 8 months ago • 19 comments

This refactors the docker based CI and unifies it with a Dev Container workflow.

Instead of use cron jobs to priodickly rebuild the base image used for CI, or installing any missing dependencies as initial steps in CircleCI, this migrates the CI pipeline to dynamically rebuild the base image on demand while leveraging buildkit cache backend to do so efficiently. This also unifies the docker image build process forDev Containers, making it simple to rebuild a development image locally, or bootstrap one by pulling image layer remotely from GHCR provided by CI. Lastly, this also provide additional room to build release docker images, to quickly ship a minimal but pre-built nav2 workspace for select branches and open pull requests to streamline end user experimentation and testing.

Related:

  • https://github.com/ros-navigation/navigation2/issues/2648

To get started, simply clone this PR with git submodules and follow along with the include quick start guide:

git clone --recurse-submodules -j8 \
  --branch buildkit \
  [email protected]:ros-navigation/navigation2.git

ruffsl avatar Jun 03 '24 15:06 ruffsl