# container-rpmbuilder The estate's RPM packaging image, built on each `container-base` distro image. Published as `artifactapi.k8s.syd1.au.unkin.net/docker-internal/rpmbuilder:-`; the default distro's build is retagged as the unsuffixed `:`, so both resolve to one digest. Only explicit versions are published; never a floating tag. | distro | from | tag suffix | default | | --- | --- | --- | --- | | `alma9` | `docker-internal/almalinux9:` | `alma9` | yes | | `fedora42` | `docker-internal/fedora42:` | `fedora42` | no | | `fedora43` | `docker-internal/fedora43:` | `fedora43` | no | | `fedora44` | `docker-internal/fedora44:` | `fedora44` | no | Adds `rpm-build`, `rpmdevtools`, `rpmlint`, `rpm-sign`, `nfpm`, `envsubst` (`gettext`), `buildah`, `go`, `gcc` and the usual autotools/debug toolchain; see `PACKAGES` in each `distros//distro.env`. The `container-base` release this image builds on is `BASE_VERSION` in the `Dockerfile`. ## Adding a distro 1. `distros//distro.env` — `BASE_IMAGE_NAME`, `IMAGE`, `TAG_SUFFIX`, `DEFAULT`, `PACKAGES`. 2. One `include` entry in each of `.woodpecker/{build-matrix,docker}.yaml`. The `check-distros` pre-commit hook fails if step 1 or 2 is incomplete, or if more than one distro claims `DEFAULT`. `.woodpecker/build.yaml` only aggregates the matrix into the `ci/woodpecker/pr/build` context that branch protection requires. ## Make make build # build every distro make pre-commit # uvx pre-commit run --all-files make build-alma9 # one distro make patch|minor|major