@@ -58,14 +58,22 @@ None of the above arguments are required for `--update`.
5858
5959## Supported platforms
6060
61- | Name | Base image |
62- | ----------- | -------------- |
63- | ` ubuntu-20 ` | ` ubuntu:20.04 ` |
64- | ` ubuntu-22 ` | ` ubuntu:22.04 ` |
65- | ` ubuntu-24 ` | ` ubuntu:24.04 ` |
66- | ` debian-11 ` | ` debian:11 ` |
67- | ` debian-12 ` | ` debian:12 ` |
68- | ` debian-13 ` | ` debian:13 ` |
61+ | Name | Base image |
62+ | ----------- | -------------------------- |
63+ | ` ubuntu-20 ` | ` ubuntu:20.04 ` |
64+ | ` ubuntu-22 ` | ` ubuntu:22.04 ` |
65+ | ` ubuntu-24 ` | ` ubuntu:24.04 ` |
66+ | ` debian-11 ` | ` debian:11 ` |
67+ | ` debian-12 ` | ` debian:12 ` |
68+ | ` debian-13 ` | ` debian:13 ` |
69+ | ` rhel-8 ` | ` rockylinux/rockylinux:8 ` |
70+ | ` rhel-9 ` | ` rockylinux/rockylinux:9 ` |
71+ | ` rhel-10 ` | ` rockylinux/rockylinux:10 ` |
72+
73+ RHEL packages are built on Rocky Linux base images. The build scripts detect
74+ ` OS=rhel ` from ` /etc/redhat-release ` (which reports ` Rocky Linux release ... ` ),
75+ so the produced ` .rpm ` s are ordinary Red Hat / rpm packages. AlmaLinux is _ not_
76+ recognized by ` build-scripts/detect-environment ` , which is why Rocky is used.
6977
7078Adding a new Debian/Ubuntu platform requires a new entry in ` platforms.json `
7179and adding the platform name to the matrix in
@@ -85,8 +93,17 @@ The new entry in `platforms.json` needs:
8593--platform <new-platform >` and it will fetch the current digest from
8694 Docker Hub and write it into ` platforms.json ` .
8795
88- Adding a non-debian based platform (e.g.,
89- RHEL/CentOS) requires a new ` container/Dockerfile.rhel ` plus platform entries.
96+ Adding another RHEL-family platform (a new Rocky/RHEL major version) works the
97+ same way: add a ` platforms.json ` entry with ` "dockerfile": "Dockerfile.rhel" `
98+ and a matrix entry, then set any per-version ` extra_build_args ` — ` CRB_REPO `
99+ (` powertools ` on 8, ` crb ` on 9+), ` PHP_MODULE_STREAM ` (` remi-8.3 ` where the
100+ distro's default PHP is older than 8.3; RHEL 10 already ships 8.3), and
101+ ` EXTRA_PKGS ` for version-specific packages. Note that ` --update-sha ` also works
102+ for the namespaced ` rockylinux/rockylinux ` base images, not just official
103+ Docker Hub library images.
104+
105+ Adding an entirely different, non-RHEL/non-Debian platform family (e.g. SUSE)
106+ would require a new ` container/Dockerfile.<family> ` plus platform entries.
90107
91108## How it works
92109
@@ -100,8 +117,10 @@ The system has three components:
100117 source repos from the read-only mount, then calls the existing build scripts
101118 in order.
102119
103- 3 . ** ` container/Dockerfile.debian ` ** -- parameterized Dockerfile shared by all
104- Debian/Ubuntu platforms via a ` BASE_IMAGE ` build arg.
120+ 3 . ** ` container/Dockerfile.debian ` ** and ** ` container/Dockerfile.rhel ` ** --
121+ parameterized Dockerfiles shared across platforms of the same family via a
122+ ` BASE_IMAGE ` build arg (plus per-platform ` extra_build_args ` in
123+ ` platforms.json ` , e.g. the CRB repo name and PHP module stream for RHEL).
105124
106125### Container mounts
107126
0 commit comments