Skip to content

Add linux/riscv64 to bin-image-cross release target#6858

Merged
thaJeztah merged 1 commit intodocker:masterfrom
gounthar:feat/add-riscv64-to-bin-image-cross
Mar 13, 2026
Merged

Add linux/riscv64 to bin-image-cross release target#6858
thaJeztah merged 1 commit intodocker:masterfrom
gounthar:feat/add-riscv64-to-bin-image-cross

Conversation

@gounthar
Copy link
Copy Markdown
Contributor

@gounthar gounthar commented Mar 12, 2026

- What I did

Added linux/riscv64 to the bin-image-cross target's platform list in docker-bake.hcl, so that official release images include riscv64 binaries.

- How I did it

One-line addition to docker-bake.hcl. linux/riscv64 is already present in the _platforms variable (line 38) and used by the cross, dynbinary-cross, and plugins-cross targets — CI already builds riscv64 binaries. They are simply excluded from the release image because bin-image-cross has its own hardcoded platform list.

- How to verify it

  1. Run docker buildx bake bin-image-cross --print and confirm linux/riscv64 appears in the platforms list
  2. All other Docker stack components already ship riscv64 release binaries: runc (since v1.1.8), containerd (v2.2.2), BuildKit (v0.28.0), BuildX (v0.32.1), Compose (v5.1.0)
  3. I maintain docker-for-riscv64 which has shipped Docker CLI riscv64 binaries across 117+ releases, tested on native hardware (BananaPi F3, SpacemiT K1, rv64gc, Debian Trixie)

- Human readable description for the release notes

- A picture of a cute animal (not mandatory but encouraged)

🐧 (a riscv penguin)

Closes #6857

Add linux/riscv64 to the bin-image-cross platforms list so that
official release images include riscv64 binaries.

riscv64 is already present in the _platforms variable (line 38) and
used by the cross, dynbinary-cross, and plugins-cross targets. CI
already builds riscv64 binaries, but they are excluded from the
release image because bin-image-cross has its own platform list.

Closes docker#6857

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@gounthar
Copy link
Copy Markdown
Contributor Author

gounthar commented Mar 12, 2026

The check-changelog CI job fails with:

PR has a changelog description, but no changelog label

Could a maintainer please add the impact/changelog label to this PR? As a fork contributor, I don't have permission to add labels myself.

The riscv64 builds pass (both static and glibc variants). The other failing job (tests (local, debian, 29)) appears to be a flaky test unrelated to this change; the PR only adds "linux/riscv64" to the bin-image-cross target list in docker-bake.hcl.

@vvoland
Copy link
Copy Markdown
Collaborator

vvoland commented Mar 13, 2026

Thanks! LGTM but it still won't make the official packages (hosted at https://download.docker.com/) include the riscv64 binaries.

Our official release pipeline has an explicit list of targets which only includes amd64/arm architectures.
This explicitly does not include arches we don't have native runners for.

@vvoland vvoland added this to the 29.3.1 milestone Mar 13, 2026
@gounthar
Copy link
Copy Markdown
Contributor Author

Thanks for the context @vvoland — that makes sense.

Regarding native runners: Cloud-V provides free self-hosted GitHub Actions runners on real riscv64 hardware to open source projects. For example, llama.cpp already uses Cloud-V runners for their native riscv64 CI jobs.

Would Docker be open to exploring that option? If so, I can help with the initial setup and testing. Happy to open a separate issue to discuss adding riscv64 to the release pipeline once native runners are available.

@thaJeztah
Copy link
Copy Markdown
Member

Thanks! Yes, no objection whatsoever to add it in the dockereng/cli-bin image.

As Pawel mentioned; adding it to the download.docker.com package repo, and adding it in the release-pipeline there may be slightly more involved. Native runners could be an option, but we'd have to check (also because parts of the pipeline is private).

We should look though if we can publish images containing the (cross-built) binaries as part or the https://github.com/docker/packaging repository. I thought we also pushed versions for tagged releases there, but at a quick glance, I only see nightly builds; https://hub.docker.com/r/dockereng/packaging/tags?name=cli (I may be mistaken there, but perhaps @vvoland recalls).

Copy link
Copy Markdown
Member

@thaJeztah thaJeztah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@thaJeztah thaJeztah merged commit 9ca766c into docker:master Mar 13, 2026
113 of 116 checks passed
@gounthar gounthar deleted the feat/add-riscv64-to-bin-image-cross branch March 13, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add linux/riscv64 to official release binaries

4 participants