Skip to content

feat(docker): add RHEL 9 (AlmaLinux 9) Docker build support#6988

Draft
youtalk wants to merge 5 commits intoautowarefoundation:mainfrom
youtalk:feat/rhel9-docker-build
Draft

feat(docker): add RHEL 9 (AlmaLinux 9) Docker build support#6988
youtalk wants to merge 5 commits intoautowarefoundation:mainfrom
youtalk:feat/rhel9-docker-build

Conversation

@youtalk
Copy link
Copy Markdown
Member

@youtalk youtalk commented Apr 8, 2026

Description

Add Dockerfile.rhel and supporting scripts to build Autoware on AlmaLinux 9 (RHEL 9 compatible) without CUDA.

The ROS 2 Jazzy RHEL 9 binary provides ros-base equivalent (371 packages). Missing ROS packages (diagnostic_updater, geographic_msgs, pcl_ros, lanelet2_core, grid_map, filters, etc.) are built from source via rhel-extra-deps.repos.

Key changes

  • docker/Dockerfile.rhel: Multi-stage Dockerfile (16 stages) with BuildKit parallel builds
  • docker/scripts/build_and_clean_rhel.sh: 3-pass colcon build with RHEL-specific patches (M_PIf, Boost 1.75, CUDA COLCON_IGNORE)
  • docker/scripts/resolve_rosdep_keys_rhel.sh: rosdep resolution with --os=rhel:9
  • docker/rhel-extra-deps.repos: VCS manifest of 37 ROS packages not in RHEL binary
  • docker/README-rhel.md: Build procedure documentation

Image sizes

Target Size Packages
universe-devel ~13.7 GB 431 built (0 failed)
universe (runtime) ~7.1 GB 746 recognized by ros2 pkg list

How was this PR tested?

  • Built universe-devel target: 431 packages succeeded, 0 failed
  • Built universe runtime target: 7.06 GB image
  • Verified ros2 pkg list returns 746 packages (189 autoware_* packages)
  • Verified ros2 topic list and ros2 node list work correctly
  • Verified entrypoint with UID/GID remapping via gosu

Add Dockerfile.rhel and supporting scripts to build Autoware on
AlmaLinux 9 (RHEL 9 compatible) without CUDA. The RHEL binary provides
ros-base equivalent (371 packages); missing ROS packages are built from
source via rhel-extra-deps.repos.

Key changes:
- Multi-stage Dockerfile.rhel (16 stages) with BuildKit parallel builds
- build_and_clean_rhel.sh: 3-pass colcon build with RHEL-specific
  patches (M_PIf, Boost 1.75 compat, CUDA COLCON_IGNORE)
- resolve_rosdep_keys_rhel.sh: rosdep resolution with --os=rhel:9
- Runtime stages (core, universe) with gosu-based UID/GID remapping
- README-rhel.md documenting the build procedure

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 8, 2026

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

Comment thread .dockerignore Outdated
Comment thread docker/README-rhel.md Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant