Skip to content

👷(docker) add arm64 platform support for image builds#1

Open
StephanMeijer wants to merge 1 commit intosuitenumerique:betafrom
StephanMeijer:feature/docker-arm64
Open

👷(docker) add arm64 platform support for image builds#1
StephanMeijer wants to merge 1 commit intosuitenumerique:betafrom
StephanMeijer:feature/docker-arm64

Conversation

@StephanMeijer
Copy link
Copy Markdown

Purpose / Proposal

Adding support for linux/arm64 when building Docker images.

This is important because:

  1. It enables to run La Suite on devices like the Raspberry Pi and Mac Mini. It will also make it easier for developers to contribute, as many are using Apple MacBooks with arm64 chips.
  2. More and more providers (such as Hetzner) for infrastructure are offering arm64 support.
  3. Sustainability is a point of interest (and sometimes condition) for organizations, commercially but specifically also governments, when they are buying infrastructure.

External contributions

  • I have read and followed the contributing guidelines
  • I have read and agreed to the Code of Conduct
  • I have signed off my commits with git commit --signoff (DCO compliance)
  • I have signed my commits with my SSH or GPG key (git commit -S)
  • My commit messages follow the required format: <gitmoji>(type) title description
  • I have added a changelog entry under ## [Unreleased] section (if noticeable change)
  • I have added corresponding tests for new features or bug fixes (if applicable)

Testing happens when GitHub Workflows are being executed.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@StephanMeijer
Copy link
Copy Markdown
Author

StephanMeijer commented Feb 19, 2026

Some executions of CI steps could show an error.

The actions docker/setup-qemu-action@v3 and docker/setup-buildx-action@v3 are not allowed in suitenumerique/people because all actions must be from a repository owned by suitenumerique, created by GitHub, or match one of the patterns: actions/cache@v4, actions/checkout@v4, actions/deploy-pages@*, actions/setup-node@v4, actions/setup-python@v3, actions/setup-python@v5, actions/setup-python@v6, actions/upload-artifact@v4, aquasecurity/setup-trivy@v0.2.2, aquasecurity/trivy-action@0.29.0, astral-sh/setup-uv@v6, azure/setup-helm@v4, crowdin/github-action@v2, docker/build-push-action@v6, docker/login-action@v3, docker/metadata-action@v5, jsdaniell/create-json@v1.2.3, numerique-gouv/action-argocd-webhook-notification@main, numerique-gouv/action-trivy-cache@main, numerique-gouv/helm-gh-pages@add-overwrite-option, peter-evans/create-pull-request@v7.

The allowed actions list is configured in the organization's GitHub Settings. As I am an external contributor, I do not have access to modify these. I request the reviewer of this pull request to contact one of the people in this list: https://github.com/orgs/suitenumerique/people

This pull request introduces QEMU (for emulation) and buildx (for cross-platform docker builds). These are needed because GitHub Actions runners are linux/amd64. To build Docker images for linux/arm64 on an amd64 runner:

  1. QEMU (docker/setup-qemu-action) provides CPU emulation so the runner can execute arm64 instructions
  2. Buildx (docker/setup-buildx-action) extends Docker with multi-platform build support, using QEMU under the hood

Without these, the platforms: linux/amd64,linux/arm64 parameter on docker/build-push-action would fail. Therefore docker/setup-qemu-action@v3 and docker/setup-buildx-action@v3 should be whitelisted on organizational level before merging this pull request.

You can read more about it on github.com/docker/build-push-action.

@StephanMeijer
Copy link
Copy Markdown
Author

Rebased this branch on the latest target branch and force-pushed.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant