Skip to content

Add multi-architecture support for Docker images and workflows#841

Open
stearz wants to merge 1 commit intokelos-dev:mainfrom
stearz:arm64-support
Open

Add multi-architecture support for Docker images and workflows#841
stearz wants to merge 1 commit intokelos-dev:mainfrom
stearz:arm64-support

Conversation

@stearz
Copy link
Copy Markdown
Contributor

@stearz stearz commented Mar 29, 2026

What type of PR is this?

/kind feature

What this PR does / why we need it:

adds support for arm64

Which issue(s) this PR is related to:

Fixes #840

Special notes for your reviewer:

none

Does this PR introduce a user-facing change?

yes, containers now also run on arm64 machines

Added support for arm64

Summary by cubic

Add multi-arch Docker builds (linux/amd64, linux/arm64) and update the release workflow to build and push them with Buildx. Images now run natively on ARM (Apple Silicon) and x86. Fixes #840.

  • New Features

    • Makefile: added image-multiarch; image now builds for the host arch; pass TARGETARCH to docker build.
    • Dockerfiles: use ARG TARGETARCH and copy arch-specific binaries (*-linux-$ARCH).
    • CI: added docker/setup-qemu-action@v3 and docker/setup-buildx-action@v3; switched to a single build-and-push step; latest tags are multi-arch on releases.
  • Migration

    • Use make image-multiarch to publish multi-arch images (requires Docker Buildx).
    • Local make image builds for your machine’s arch; override with LOCAL_ARCH=amd64 if needed.

Written for commit 7300235. Summary will update on new commits.

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 9 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="Makefile">

<violation number="1" location="Makefile:108">
P2: `image-multiarch` hardcodes prebuilt arches (`amd64 arm64`) while `--platform` uses configurable `IMAGE_PLATFORMS`, which can produce missing per-arch binaries when platforms are overridden.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@gjkim42
Copy link
Copy Markdown
Collaborator

gjkim42 commented Mar 29, 2026

This is a duplicate of #787

@stearz
Copy link
Copy Markdown
Contributor Author

stearz commented Mar 29, 2026

It would be cool if ypu merge one of them. 😉

with:
go-version-file: go.mod

- name: Set up QEMU
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My experience with this in #787 was that QEMU is very, very slow. like 60 minutes per run.

I swapped to running on ARM runners, example: https://github.com/datagravity-ai/kelos/blob/prod/.github/workflows/ci.yaml and it went to 2-3 minutes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for arm64

3 participants