Switch from cross-compilation to QEMU-based emulation builds #396
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🗣 Description
This change removes the
tonistiigi/xx
cross-compilation toolchain and instead relies on QEMU-based emulation for building multi-platform images. The Dockerfile is simplified by eliminating platform-specific commands (xx-apt
) and dependencies.Supported platforms are now limited to those that successfully build with the emulation approach. Platforms requiring additional changes can be added later via PRs.
Also:
--version
flag determines the version of the container. Needed to support the5.1.0+r1
tag.:5
tag in sampledocker-compose.yml
andREADME.md
.💭 Motivation and context
pip
was installing the wrong C extensions for some libraries. Specificallyephem
.ephem
package fails to install correctly for non-x86 architectures #395🧪 Testing
On development box, production, and in CI.
Output from container built in GitHub Actions and pulled to an
arm64
machine:✅ Pre-approval checklist
to reflect the changes in this PR.
✅ Pre-merge checklist
✅ Post-merge checklist