Build multi-arch Docker images (amd64 + arm64)#5472
Open
flozano wants to merge 2 commits intoRotherOSS:rel-11_0from
Open
Build multi-arch Docker images (amd64 + arm64)#5472flozano wants to merge 2 commits intoRotherOSS:rel-11_0from
flozano wants to merge 2 commits intoRotherOSS:rel-11_0from
Conversation
Add linux/arm64 platform support to all Docker image build and update workflows. This produces manifest lists so that `docker pull` automatically selects the correct architecture. Changes: - Add QEMU setup step and a `platforms` input to both composite actions (docker_image_builder and docker_image_update) - Pass `platforms: linux/amd64,linux/arm64` for otobo-web, otobo-elasticsearch, otobo-nginx-webproxy, and otobo-nginx-kerberos-webproxy in all four workflows - Keep otobo-selenium-chrome as linux/amd64 only since the upstream selenium/standalone-chrome base image does not support arm64 - The Build step (with `load: true`) remains single-platform for the existing sanity check; only the Push step builds for all platforms Verified locally: both otobo-web and otobo-elasticsearch Dockerfiles build successfully for linux/arm64 on Apple Silicon (native arm64), including all Debian packages and CPAN module compilation.
Contributor
|
Hi Franzisco, @flozano , thanks for your contribution. This looks very sane to me. We will discuss internally at Rother OSS whether we want this for the next patch level releases or possible only for the upcoming rel-11_1. Best regards, |
Author
|
hi, thanks for considering it! |
v3 uses Node.js 20 which is deprecated on GitHub Actions runners (forced to Node.js 24 starting June 2, 2026).
Author
CI test results: multi-arch build validatedRan a build-only test workflow on a fork (no push, no secrets needed) to verify all Docker images compile for both All 4 multi-arch images built successfully:
Notes:
|
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.
Summary
linux/arm64platform support to all Docker image build and update workflows, producing manifest lists sodocker pullautomatically selects the correct architectureplatformsinput to both composite actions (docker_image_builderanddocker_image_update)otobo-selenium-chromeaslinux/amd64only since the upstreamselenium/standalone-chromebase image does not publish arm64 variantsDetails
All base images already support arm64:
perl:5.40-bookwormelasticsearch:8.19.3nginx:mainline-trixiemariadb:lts-nobleredis:8-bookwormselenium/standalone-chromeThe existing Build step with
load: trueremains single-platform for the sanity check (docker runinspection). Only the Push step uses theplatformsinput to build and push for all specified architectures.6 files changed, 52 insertions added. No Dockerfiles were modified.
Test plan
otobo.web.dockerfilebuilds successfully forlinux/arm64(verified locally on Apple Silicon — all Debian packages install, all CPAN modules compile)otobo.elasticsearch.dockerfilebuilds successfully forlinux/arm64(verified locally — bothingest-attachmentandanalysis-icuplugins install)TARGETARCH, no hardcoded binary downloads)