feat(oci): multi-arch image build for amd64 + arm64 #20

Merged
nrupard merged 1 commit from feat/multi-arch-oci-build into main 2026-05-15 17:15:57 +02:00
Owner

Publish linux/amd64 + linux/arm64 in the same manifest list so self-hosters on ARM (Pi, Ampere, Apple Silicon servers) can pull a working mokosh-www image. The Dioxus client output is a WASM bundle which is arch-agnostic, so the rust-builder stage is pinned to BUILDPLATFORM (compiles once on the runner's native amd64) and only the small Caddy-on-alpine runtime stage is rebuilt per target arch. setup-qemu-action runs before the buildx builder is created so the runner can emulate arm64 for that runtime stage. Validated locally: docker buildx build --platform linux/arm64 --load -f oci-build/Dockerfile . produces a 56MB arm64 image that serves HTTP 200 via Caddy under QEMU.

Signed-off-by: nrupard natrsmith11@gmail.com

Publish linux/amd64 + linux/arm64 in the same manifest list so self-hosters on ARM (Pi, Ampere, Apple Silicon servers) can pull a working mokosh-www image. The Dioxus client output is a WASM bundle which is arch-agnostic, so the rust-builder stage is pinned to BUILDPLATFORM (compiles once on the runner's native amd64) and only the small Caddy-on-alpine runtime stage is rebuilt per target arch. setup-qemu-action runs before the buildx builder is created so the runner can emulate arm64 for that runtime stage. Validated locally: `docker buildx build --platform linux/arm64 --load -f oci-build/Dockerfile .` produces a 56MB arm64 image that serves HTTP 200 via Caddy under QEMU. Signed-off-by: nrupard <natrsmith11@gmail.com>
feat(oci): multi-arch image build for amd64 + arm64
Some checks failed
Create release / Create release from merged PR (pull_request) Has been skipped
Check / clippy + fmt + tests (pull_request) Failing after 8s
5b29870699
Publish linux/amd64 + linux/arm64 in the same manifest list so self-hosters on ARM (Pi, Ampere, Apple Silicon servers) can pull a working mokosh-www image. The Dioxus client output is a WASM bundle which is arch-agnostic, so the rust-builder stage is pinned to BUILDPLATFORM (compiles once on the runner's native amd64) and only the small Caddy-on-alpine runtime stage is rebuilt per target arch. setup-qemu-action runs before the buildx builder is created so the runner can emulate arm64 for that runtime stage. Validated locally: `docker buildx build --platform linux/arm64 --load -f oci-build/Dockerfile .` produces a 56MB arm64 image that serves HTTP 200 via Caddy under QEMU.

Signed-off-by: nrupard <natrsmith11@gmail.com>
nrupard deleted branch feat/multi-arch-oci-build 2026-05-15 17:15:57 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!20
No description provided.