paultmathew opened a new pull request, #21: URL: https://github.com/apache/kyuubi-docker/pull/21
## What Switch the release image publish workflow (`.github/workflows/docker-image.yml`) from single-arch `docker build` + `docker push` to `docker buildx build --platform linux/amd64,linux/arm64 --push`, adding the QEMU + Buildx setup steps. ## Why All released `apache/kyuubi` tags (e.g. `1.11.x`, and the `-spark`/`-flink`/`-all` variants) are currently **amd64-only**. Snapshot images (`apache/kyuubi:master-snapshot`) have been multi-arch since KYUUBI #4576 / #4577, but that change only covered the snapshot workflow in `apache/kyuubi`; the release images published from this repo were never converted. ARM support is still an open, unanswered ask in discussion apache/kyuubi#4487. This completes the release-image half of apache/kyuubi#4576. ## How it works The distribution is built once on the native (amd64) runner via `./build/dist` — Kyuubi/Spark/Flink are pure-JVM, architecture-independent artifacts — and the same dist is assembled onto the multi-arch `eclipse-temurin:8` base for both platforms. So buildx only emulates the small `apt` layer + `COPY` for `linux/arm64`; there's no cross-compiled native code. The combined build-and-push replaces the separate validate/push steps because a multi-arch manifest list cannot be loaded into the local Docker daemon. ## Testing - Verified `eclipse-temurin:8-jdk-focal` (the release Dockerfile base) publishes both `linux/amd64` and `linux/arm64`. - Built the release Dockerfile for both platforms locally with the same `buildx --platform linux/amd64,linux/arm64` invocation; the arm64 image assembles correctly (base + apt layer + dist copy) and produces a valid manifest list. - Validated that the multi-arch upstream Kyuubi image runs on arm64 end-to-end: deployed `apache/kyuubi:master-snapshot` (the existing multi-arch artifact) on an arm64 (AWS Graviton) Kubernetes node and ran a Spark query (`SELECT 1`) through the Thrift frontend to completion. Reviewers: this only changes the publish workflow; the per-version Dockerfiles are untouched. Made with [Cursor](https://cursor.com) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
