navigation2
navigation2 copied to clipboard
Refactor Docker and Dev Container setup using Buildkit
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