feat: add linux/arm64 multi-arch image support - #152
Open
gbartolini wants to merge 5 commits into
Open
gbartolini wants to merge 5 commits into
gbartolini wants to merge 5 commits into
Conversation
linux/arm64 multi-arch image support
Introduces linux/arm64 support alongside the existing linux/amd64 images. - Dockerfile: drop the hardcoded `--build=x86_64-linux-gnu` configure flag (let it auto-detect) and compute `--libdir` from `dpkg-architecture -qDEB_HOST_MULTIARCH` instead of hardcoding the amd64 multiarch triplet. - docker-bake.hcl: turn the target's `platforms` list into an overridable variable, defaulting to both linux/amd64 and linux/arm64. - .github/workflows/reusable-build.yml (new): builds each architecture natively in its own matrix job (amd64 on the existing runner, arm64 on `ubuntu-24.04-arm`) and merges the two per-arch images into a single multi-arch manifest per tag via `docker buildx imagetools create`. PostgreSQL is compiled from source, which is CPU-bound, so this avoids cross-building arm64 through QEMU emulation on an amd64 runner, which would multiply build time considerably. - build.yml, build-commitfest.yml, continuous-delivery.yml: extract the existing input/tag-resolution steps into a `prepare` job and delegate the actual build to the new reusable workflow. On `pull_request` runs, continuous-delivery.yml now builds both architectures to validate the Dockerfile without pushing or publishing a manifest (previously it built only amd64). - README.md: document the multi-arch build/merge approach and how local `docker buildx bake` builds are affected (QEMU emulation for the non-native platform). Closes #151 Assisted-by: Claude Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
NiccoloFei
approved these changes
Sep 3, 2026
Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
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.
Introduces linux/arm64 support alongside the existing linux/amd64 images.
--build=x86_64-linux-gnuconfigure flag (let it auto-detect) and compute--libdirfromdpkg-architecture -qDEB_HOST_MULTIARCHinstead of hardcoding the amd64 multiarch triplet.platformslist into an overridable variable, defaulting to both linux/amd64 and linux/arm64.ubuntu-24.04-arm) and merges the two per-arch images into a single multi-arch manifest per tag viadocker buildx imagetools create. PostgreSQL is compiled from source, which is CPU-bound, so this avoids cross-building arm64 through QEMU emulation on an amd64 runner, which would multiply build time considerably.preparejob and delegate the actual build to the new reusable workflow. Onpull_requestruns, continuous-delivery.yml now builds both architectures to validate the Dockerfile without pushing or publishing a manifest (previously it built only amd64).docker buildx bakebuilds are affected (QEMU emulation for the non-native platform).Closes #151
Assisted-by: Claude