Skip to content

Add Amazon Linux 2023 OS variant - #818

Open
lukebakken wants to merge 1 commit into
docker-library:masterfrom
lukebakken:feature/add-amazonlinux-variant
Open

Add Amazon Linux 2023 OS variant#818
lukebakken wants to merge 1 commit into
docker-library:masterfrom
lukebakken:feature/add-amazonlinux-variant

Conversation

@lukebakken

Copy link
Copy Markdown
Collaborator

Summary

Add an amazonlinux (Amazon Linux 2023) OS variant alongside the existing ubuntu and alpine variants, 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 the ubuntu and alpine builds; the final image is aligned to the ubuntu runtime toolset.

What's included

  • Dockerfile-amazonlinux.template - dnf-based multi-stage build (build-base -> openssl-builder -> erlang-builder -> final).
  • versions.sh / versions.json - amazonlinuxVersions pin (2023).
  • apply-templates.sh and generate-stackbrew-library.sh - amazonlinux added to both variant loops.
  • Dockerfile-management.template - an amazonlinux branch for installing rabbitmqadmin.
  • Regenerated 4.0/-4.3/amazonlinux/ Dockerfiles.

Amazon Linux 2023 specifics

  • Uses dnf; arch detection via uname -m (x86_64 / aarch64), since there is no dpkg --print-architecture or apk --print-arch.
  • Full gnupg2 is installed with --allowerasing to replace gnupg2-minimal (which lacks dirmngr, needed for gpg --recv-keys).
  • The final image matches the ubuntu runtime toolset: it keeps tar, find, gosu, hostname, and ps, and purges wget and xz.
  • gosu is not packaged for AL2023, so it is downloaded from the upstream release and verified against a pinned SHA256 (as with rabbitmqadmin).

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.

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.
@lukebakken lukebakken self-assigned this Jul 11, 2026
@tianon

tianon commented Jul 13, 2026

Copy link
Copy Markdown
Member

Is there some unique functionality or supportability that this unlocks? 😅

@lukebakken

Copy link
Copy Markdown
Collaborator Author

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.

@tianon

tianon commented Jul 14, 2026

Copy link
Copy Markdown
Member

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. 😅

@michaelklishin

Copy link
Copy Markdown
Collaborator

@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).

@lukebakken

Copy link
Copy Markdown
Collaborator Author

It's the "everything else" that matters in this case. Thanks @michaelklishin

@lukebakken

Copy link
Copy Markdown
Collaborator Author

@tianon @yosifkit - do you need anything else from me? I promise to keep this maintained and not increase your workload 😸

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.

3 participants