docker / roadmap

Welcome to the Public Roadmap for All Things Docker! We welcome your ideas.
https://github.com/docker/roadmap/projects/1
Creative Commons Zero v1.0 Universal
1.45k stars 244 forks source link

Add more official images for RISC-V architecture #627

Open ty114514 opened 2 months ago

ty114514 commented 2 months ago

Tell us about your request Currently, there are very few images that can be used for the RISC-V architecture, even only single digits.

Most of the docker-library should be able to be compiled directly. Some Dockerfiles that require the addition of binary components such as redis have also added support for RISC-V.

so can more pre-built images be released?

Which service(s) is this request for? Docker Hub

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? I originally wanted to build the image and create the registry myself. This is too repetitive work. Maybe all RISC-V users have done this. We are all looking forward to more official image support.

Are you currently working around the issue? I don't know what I can do, so I can only post this issues

Additional context I saw this post https://forums.docker.com/t/riscv64-support/136290

### Tasks
whalelines commented 2 months ago

Docker Official Images (DOI) are the result of a collaboration between upstream maintainers, the DOI community, and Docker. Docker has made the RISC-V platform available for building DOI. Before a DOI can support RISC-V, a few prerequisites must be met:

  1. All upstream images must support RISC-V. For example, if an image is built FROM debian:bookworm, then the debian:bookworm image must also support RISC-V.
  2. The upstream software must support RISC-V.
  3. The Dockerfile maintainers must add the riscv64 architecture.

See this comment for more detail on the potential of RISC-V support for Debian and Alpine. Subsequent comments in that issue discuss Ubuntu.

ty114514 commented 1 month ago

I seem to understand. Docker Library is an ecological problem that will take a long time to solve. In addition, is there any plan for Docker Engine?

thaJeztah commented 1 month ago

In addition, is there any plan for Docker Engine?

There's a tracking ticket in the upstream "Moby" repository (which is the upstream project maintaining the Docker Engine codebase); I know at the time it was opened, there were still various upstreams (containerd, runc, other...) that did not yet provide support for risc-v, but perhaps things changed since (which would need to be checked);

If those are resolved, and related changes in the Moby (and Docker CLI) codebase are accepted by maintainers, it may be possible to provide "CI builds" (which could be distributed through https://hub.docker.com/r/moby/moby-bin).

Even in case the codebase could be buildable for risc-v (and possibly builds distributed from upstream CI), it would have to be evaluated if (and when) to provide official packages through download.docker.com; there's cost involved in expanding the support matrix for new architectures; both "concrete" (building and hosting packages), as well as more "implicit" (engineering and maintenance). risc-v is still a marginal use-case (and I realize there's a bit of a chicken-and-egg situation here, with (official) images not yet available); currently this also means that "supporting" will be at most "best effort"; neither our internal pipelines, nor GitHub Actions provide risc-v support, which means that while we may be able to cross-compile, we won't be able to run CI. To run CI, (upstream) projects would need hardware to run, but this may also involve "custom runners" for GitHub actions, which come with their own range of problems / risks (even more so when used in public repositories).

edit: it's risc-v, not hyper-v 🙈 😂