Skip to content
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

Multi-Arch Builds via Multi-Stage #102

Closed
wants to merge 3 commits into from

Conversation

james-crowley
Copy link

This PR is meant to add support for s390x, ppc64le, arm64 and any other arch. This is one possible solution to fix #101.

This PR also fixes a couple other issues as well:

Fixes #95
Fixes #73
Fixes #78
Fixes #54

Using a multi-stage build will avoid having to upload new registry binaries to this repo.

Most of this PR is based off of @tianon's PR #74, but with a couple updates.

@james-crowley
Copy link
Author

@dmcgowan When you get a second, you mind looking over this PR? Happy to make any changes that are needed.

@dmcgowan
Copy link
Contributor

The go versions have to line up with the releases. Ideally the dockerfile would just be included in the release or derived directly from it. In these cases, I am fine as long as it is building the same binaries by using the same go version. If a go version update is needed, that has to be treated as a fix not just automatic update.

I defer to @tianon on whether multi stage builds can be used, I have always been OK with it as long as the official build process supports it.

@james-crowley
Copy link
Author

@dmcgowan Another option @tianon and I brought up in issue #101, is we could skip the whole multi-stage builds if you were open to publishing the binaries over on https://github.com/docker/distribution/releases.

With the published binaries not only could we use them here but others could pull them into other projects as well. Plus, then we would not need to worry about lining up the GO versions.

Would you be open to publishing the binaries?

I mostly put this PR out here as one possible fix for multi-arch builds. Ideally, I would like to go with @tianon's suggestion of publishing the binaries.

@dmcgowan
Copy link
Contributor

Yes, I am open to that, have considered as a part of the 2.8 release. I am always hesitant to release binaries on platforms that we don't have CI infrastructure to test on that platform

@james-crowley
Copy link
Author

@dmcgowan I see a .travis.yml file in that repo, are you guys using Travis CI for your CI? If so, Travis now support s390x, ppc64le and arm64. See here for Travis docs.

If you guys are not using Travis, what CI infrastructure are you using? IBM does offer free resources, s390x and ppc64le, to open source communities. If you are interested, I can point you in the direction so you are not publishing binaries for platforms you can not test.

@clnperez
Copy link

@dmcgowan if memory serves me correctly, there are some registry tests in moby ci -- and power and z do have jobs there (e.g. https://ci-next.docker.com/public/blue/organizations/jenkins/moby/detail/PR-41155/3/pipeline). It's not the distribution CI but it's not nothing. :D

@clnperez
Copy link

Any news here?

@james-crowley
Copy link
Author

@clnperez Thanks for the ping! Sometimes PRs can get lost in my other projects! It looks like we are still waiting for @dmcgowan.

@dmcgowan Is this something you are willing to relook at? I am happy to update the PR with any new updates/features you need.

@clnperez
Copy link

any updates? we can help if you need someone to own this

@milosgajdos
Copy link
Member

@james-crowley we've updated the image in the following PRs:

The image is also already available on Hub as a multiarch official image (see here)

You can find all the artifacts on the pre-release page in GH https://github.com/distribution/distribution/releases/tag/v2.8.0-beta.1

Would you mind if I close this PR and #124 which are basically duplicates at this point?

@mkumatag
Copy link

mkumatag commented Feb 2, 2022

Finally...!, thanks for this wonderful news folks..

@milosgajdos milosgajdos closed this Feb 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants