Commit 6f0223b
committed
Add Rust-based
The RabbitMQ management images now include the Rust-based
`rabbitmqadmin-ng` CLI tool when possible, with automatic fallback to
the Python version on architectures where Rust compilation fails.
This change adds a two-stage build to `Dockerfile-management.template`:
- **Builder stage**: Attempts to compile `rabbitmqadmin-ng` from source
using Rust toolchain installed via `rustup-init.sh`. The build links
against the custom OpenSSL installation using `OPENSSL_DIR` and
`RUSTFLAGS` with proper rpath configuration.
- **Final stage**: Copies the Rust binary if build succeeded, otherwise
falls back to the Python script from the RabbitMQ management plugin.
Python is only installed when using the fallback.
The `versions.sh` script fetches the latest `rabbitmqadmin-ng` release
tag from the GitHub API and calculates SHA256 checksums for both the
source archive and Rust installer. These values are stored in
`versions.json` and templated into the generated management Dockerfiles.
This approach ensures smaller images on architectures with good Rust
support (amd64, arm64v8) while maintaining compatibility with all
supported architectures through automatic Python fallback.rabbitmqadmin-ng with Python fallback1 parent c75d7c6 commit 6f0223b
File tree
23 files changed
+479
-66
lines changed- 3.13
- alpine
- management
- ubuntu
- management
- 4.0
- alpine
- management
- ubuntu
- management
- 4.1
- alpine
- management
- ubuntu
- management
- 4.2
- alpine
- management
- ubuntu
- management
23 files changed
+479
-66
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
1 | 4 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments