Skip to content

Publish multi-arch (amd64 + arm64) container images#12

Open
scotwells wants to merge 1 commit into
mainfrom
multiarch-build
Open

Publish multi-arch (amd64 + arm64) container images#12
scotwells wants to merge 1 commit into
mainfrom
multiarch-build

Conversation

@scotwells
Copy link
Copy Markdown
Contributor

Summary

  • Published container images now include both linux/amd64 and linux/arm64, so Apple Silicon (M1/M2/M3) developers and arm64 Kubernetes nodes can pull and run email-provider-loops without emulation.
  • Builds cross-compile natively on the GitHub Actions amd64 runner instead of falling back to slow QEMU emulation for arm64. Local multi-arch build completes in ~1m07s (previously 15+ minutes under QEMU).
  • Version metadata (version, git commit, build date) is now threaded through Docker build args into the existing pkg/version ldflags.

Test plan

  • CI publish-container-image job succeeds and produces a multi-arch manifest
  • docker manifest inspect ghcr.io/datum-cloud/email-provider-loops:<tag> lists both linux/amd64 and linux/arm64
  • docker run --platform linux/arm64 ghcr.io/datum-cloud/email-provider-loops:<tag> version prints expected version info on Apple Silicon
  • docker run --platform linux/amd64 ghcr.io/datum-cloud/email-provider-loops:<tag> version works on amd64

Generated with Claude Code

Pin the builder stage to $BUILDPLATFORM so Go cross-compiles natively
via GOARCH=$TARGETARCH instead of falling back to QEMU emulation, wire
VERSION/GIT_COMMIT/BUILD_DATE build args into the existing
pkg/version ldflags, and bump publish-docker.yaml to v1.13.1 with
platforms: linux/amd64,linux/arm64.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

1 participant