Summary
- Build and publish the Dockerfile
runtimestage as a separate multi-arch image taggedhumble-<version>-runtime - Follows the exact same build, digest export, artifact upload, and merge manifest conventions as the existing
desktopanddevelopmentvariants
Motivation
Closes #1826
The runtime stage provides a minimal headless image based on ros:humble-ros-base without the ros-desktop and rviz2 packages included in the desktop stage. This is useful for running the scenario simulator on storage-constrained hardware (e.g. automotive SOC boards) where visualization is either handled on a separate host or not needed, roughly halving the image size compared to the desktop stage.
Changes
Single file: .github/workflows/Docker.yaml
- Build job — added a "Build runtime stage" step targeting
runtime, with digest export and artifact upload matching the existing pattern - Merge job — added a
runtimematrix entry withimage_suffix: -runtimeto produce multi-arch manifests
No Dockerfile changes required — the runtime stage already exists.
Published tags after this change
| Tag | Stage | Contents |
|---|---|---|
humble-<version> |
desktop |
runtime + ros-desktop + rviz2 |
humble-<version>-devel |
development |
full build workspace with build tools |
humble-<version>-runtime |
runtime |
minimal ros-base + compiled artifacts (new) |
Test plan
- Verify the Docker workflow YAML passes CI lint/syntax checks
- Trigger a
workflow_dispatchrun and confirm all three variants (desktop, development, runtime) build and publish successfully for both amd64 and arm64 - Pull the published
humble-<version>-runtimeimage and verify it runs headless simulation without desktop dependencies