Publish multi-arch (amd64 + arm64) container images#15
Open
scotwells wants to merge 2 commits into
Open
Conversation
Force the builder stage to run on the host BUILDPLATFORM and cross-compile to TARGETARCH natively, avoiding QEMU emulation on arm64. Also wire version metadata through ldflags and bump the publish workflow to emit both linux/amd64 and linux/arm64. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
zachsmith1
approved these changes
Apr 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Our published container images are currently amd64-only, which means anyone running on Apple Silicon (M1/M2/M3/M4) or arm64 Linux has to fall back to slow emulation or cannot run the image at all. This PR turns on multi-arch publishing so we ship both linux/amd64 and linux/arm64 from the same release.
The build is configured to compile natively for each target architecture from a single host, rather than emulating arm64 under QEMU. In local testing a full two-architecture build completed in about 1 minute, compared to 15+ minutes when relying on emulation. This unblocks Apple Silicon developers and cuts CI time significantly.
As a small bonus, version, git commit, tree state, and build date are now baked into the binary and logged at startup, which makes it easier to tell which build is running in a given environment.
Test plan
docker manifest inspecton the published image shows bothlinux/amd64andlinux/arm64starting fraudline with version metadataCo-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com