-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
architecture and operating system support #200
Comments
To comment on this issue, it looks like the solution for this is going to be in the flexibility of the new manifest format. "Architecture and Operating System Support" isn't a registry issue - it's an application issue, specifically Docker Images. One way that Docker images can solve this issue with the proposed manifest format is to simply use a different media type with the application data in the manifest containing a mapping of "os/arch" to the actual image manifest for that platform. |
@jlhawn is definitely correct that the registry itself will not be dealing with os/arch issues, but per our call yesterday, there will be some inter-related operations and steps to get multi-arch support into the engine; I've updated my prior gist about fat manifests to be more specifically focused on the discussion we had in #62 around using a |
Hi, Based on the discussions so far I have created a gist. Please let me know your thoughts... |
@harche This is not really the right approach. It ruins the generality of the manifest. The manifest knows nothing about operating systems or architectures. It is a distribution structure and decoupled from docker. This leaves control in docker engine's hands and keeps this stuff out of registry code. Checkout my comments here: This defines "alternates", that can be labelled. This will provide a solid, backwards compatible approach. It is also efficient for the vast majority of users who only use |
Hey @stevvooe ..I just saw your comment in #62 earlier, and it does seem to make sense. First question that comes to mind is what happens to images which will never have a linux-amd64 entry? For example, I assume after Windows Server comes out with their full container capabilities and Docker support, they will want the Hub to have specific WindowsOS base images. Potentially ARM or POWER or z system stakeholders may create images which bundle software unique to that hardware or architecture (e.g. a Raspberry Pi-specific package). I assume in that case there would be no dependencies, but only alternatives, labeled for that specific os/arch? |
@estesp We should have |
Sure, that makes sense @stevvooe |
@RichardScothern @stevvooe I assume we can close this? |
@dmp42 We still have an action item to define the values for the fields in |
When will this be implemented in the daemon |
@luxas The work in distribution has provided a way to provide platform agility in a content addressable distribution system. The implementations in @RichardScothern @dmp42 We may want to close this issue. Distribution has already provided the necessary components to support multi-platform. |
@stevvooe do you think it make sense to re-open this issue in core docker repository? It would be great to have a place to track overall progress and subscribe to notifications |
@bradrydzewski At this point, the plumbing is there so I am not sure if a big omnibus issue is helpful. They tend to slow down as being too big or their closure criteria is unclear. I'd recommend filing more specific issues, describing exactly what is needed yet. "Multi-platform support" is a big wide target and means many different things to many people. I know @estesp and the Microsoft folks (@jstarks, et al.) are taking on various parts to ensure this for their various platforms, but I don't know that anyone from the arm community is driving this. |
@bradrydzewski I wrote a blog post recently that tries to itemize what I believe is left. Caveat: this is my personal opinion as an involved party. Some of it is not related to the open source projects (e.g. DockerHub UI), but I know the engine pieces are understood, and https://integratedcode.us/2016/04/22/a-step-towards-multi-platform-docker-images/ |
What's the status of this? Anything in 1.12, or do I need to still use a different tag per arch? Just wondering since recently it seemed it pulled a different version on aarch64 vs armhf for container4armhf/armhf-alpine:edge I can't seem to find anywhere that specifies the status of this feature. |
@paralin support for the schema 2 manifest was added in Docker 1.10. As of docker 1.10 the engine is capable of pulling multi-platform images and the registry as of 2.3 is capable of storing them. You will not find much documentation other than the specifications currently as there are not very many multi-platform images generated and no tool within docker to generate. Docker 1.12 will not ship with any new capabilities for generating multi-platform images but will be able to pull them. Also as of this month the Docker Hub is capable of storing and retrieving multi-platform images. I suggest taking a look at the blog post in the previous comment, while there is not a tool built into docker, Phil built one and documented how to use it in his blog post. Status summary, support added, tooling and documentation coming. Try it out, be an early adopter and send feedback. |
Great, thanks. I will read the blog post and bravely try to use it at scale :) |
@thaJeztah this was solved by OCI index manifests, right? I think we should close this 7 years old issue 😅 |
Yup! I think this was the ticket that lead to manifest indices ("multi-arch images"). Which are now common (an no longer an esoteric thing). Closing! |
The distribution system should support images with different operating systems and architectures. The most relevant subject matter is the ongoing manifest proposal #62). Requirements are covered in the superseded ticket but may be incomplete. They should be re-enumerated here.
Supersedes docker-archive/docker-registry#743 and docker-archive/docker-registry#648.
@estesp
The text was updated successfully, but these errors were encountered: