Add Amazon Linux 2023 OS variant - #818
Conversation
Add an amazonlinux (AL2023) variant alongside ubuntu and alpine for RabbitMQ 4.0-4.3, building OpenSSL and Erlang/OTP from source into /opt and installing RabbitMQ from the generic-unix release. - Dockerfile-amazonlinux.template: dnf-based multi-stage build mirroring the ubuntu/alpine builder stages; final image matches the ubuntu runtime toolset (keeps tar/find/gosu/hostname/ps, purges wget/xz). - versions.sh / versions.json: amazonlinuxVersions pin (2023). - apply-templates.sh, generate-stackbrew-library.sh: amazonlinux added to both variant loops. - Dockerfile-management.template: amazonlinux branch for rabbitmqadmin. - AGENTS.md: orientation for future agents, including the AL2023 quirks learned while adding the variant.
|
Is there some unique functionality or supportability that this unlocks? 😅 |
|
Well, just that AL2023 is a popular image type on EC2, and users wish to keep their containers patched at the same rate as their base EC2 image. There shouldn't be hardly any maintenance burden by adding this variant. |
|
In the case of these images, the only software they're really getting from that base image is glibc, right? Because we compile/provide our own OpenSSL, Erlang, and RabbitMQ. 😅 |
|
@tianon and everything else that's in the base image. FWIW while this is not a technical argument, keep in mind that AWS employees maybe be asked to use an Amazon Linux-based variant, or even develop and help maintain one. I personally don't have a problem with that, and in this case the historic OSS project maintainers are not asked to take on much work although resource cost of building this new variant can be non-trivial (for one image, not in the grand scheme of things). |
|
It's the "everything else" that matters in this case. Thanks @michaelklishin |
Summary
Add an
amazonlinux(Amazon Linux 2023) OS variant alongside the existingubuntuandalpinevariants, for RabbitMQ 4.0 through 4.3.Like the other variants, it builds OpenSSL and Erlang/OTP from source into
/opt(multi-stage build) and installs RabbitMQ from the generic-unix release. The builder stages mirror theubuntuandalpinebuilds; the final image is aligned to theubunturuntime toolset.What's included
Dockerfile-amazonlinux.template-dnf-based multi-stage build (build-base -> openssl-builder -> erlang-builder -> final).versions.sh/versions.json-amazonlinuxVersionspin (2023).apply-templates.shandgenerate-stackbrew-library.sh-amazonlinuxadded to both variant loops.Dockerfile-management.template- anamazonlinuxbranch for installingrabbitmqadmin.4.0/-4.3/amazonlinux/Dockerfiles.Amazon Linux 2023 specifics
dnf; arch detection viauname -m(x86_64/aarch64), since there is nodpkg --print-architectureorapk --print-arch.gnupg2is installed with--allowerasingto replacegnupg2-minimal(which lacksdirmngr, needed forgpg --recv-keys).ubunturuntime toolset: it keepstar,find,gosu,hostname, andps, and purgeswgetandxz.gosuis not packaged for AL2023, so it is downloaded from the upstream release and verified against a pinned SHA256 (as withrabbitmqadmin).Testing
Built all four versions from the regenerated Dockerfiles, and validated 4.3 end-to-end in a 3-node cluster (AMQP quorum queues and streams) via docker compose.