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

Docker multi-arch support on CI #16

Merged
merged 2 commits into from
Oct 6, 2022
Merged

Conversation

joseluisq
Copy link
Owner

No description provided.

@joseluisq joseluisq added enhancement New feature or request arm64 x86_64 labels Oct 4, 2022
@joseluisq joseluisq self-assigned this Oct 4, 2022
@joseluisq joseluisq changed the title Docker multi-arch Docker multi-arch support Oct 4, 2022
@joseluisq
Copy link
Owner Author

The linux/arm64 CI workflow exceeded the GitHub Actions 6 hours of execution time limit because of the qemu emulation.

So it will be temporarily disabled until actions/runner-images#5631

@joseluisq
Copy link
Owner Author

However, I could use temporarily a local arm64 machine to build and push the multi-arch images.

@markmandel
Copy link
Contributor

As you are probably aware, if you built it on a separate machine, you'll need to run a separate docker manifest (https://docs.docker.com/engine/reference/commandline/manifest/) set of commands to build a new multi-platform tag, so you may want to put the arch type on the image tag, and then do a separate manifest for the main tag.

@markmandel
Copy link
Contributor

Apparently it is on the roadmap: github/roadmap#528

@joseluisq
Copy link
Owner Author

As you are probably aware, if you built it on a separate machine, you'll need to run a separate docker manifest (https://docs.docker.com/engine/reference/commandline/manifest/) set of commands to build a new multi-platform tag, so you may want to put the arch type on the image tag, and then do a separate manifest for the main tag.

@markmandel Thanks for pointed that out! Yes I will do that as a workaround when the next Rust release comes in.

@joseluisq joseluisq merged commit 5b2900a into master Oct 6, 2022
@joseluisq joseluisq deleted the docker-multi-arch-support branch October 12, 2022 22:11
@joseluisq joseluisq changed the title Docker multi-arch support Docker multi-arch support on CI Oct 18, 2022
@joseluisq
Copy link
Owner Author

Update: Turns out that I don't have the arm64 machine anymore. But there is a possibility to perform Linux arm64 builds via Cirrus CI cirruslabs/cirrus-ci-docs#905 which is awesome! I didn't know until now.
https://cirrus-ci.org/guide/linux/

So I could add Cirrus CI integration to perform the Docker multi-arch update for linux/arm64. I will investigate a bit more. Even I'm considering the option of moving out to Cirrus CI. 😅

@joseluisq
Copy link
Owner Author

Update: I already did some experiments with Cirrus this week but I got a small inconvenience when building an image on the arm64 instance there. So I hope I can get this problem sorted out in some way. Otherwise, I will try to look for alternatives.
cirruslabs/cirrus-ci-docs#1034 (comment)

@joseluisq
Copy link
Owner Author

Update: It is happening #18

@joseluisq
Copy link
Owner Author

Full Docker multi-arch support via Cirrus CI using two (amd64/arm64) separate native containers is ready to work (see #19).
And since Rust 1.65.0 is now out then a new equivalent release should come in the next hours 💪

@markmandel
Copy link
Contributor

Oooh! Will keep an eye out. I've been building my own internally, but will be lovely to switch back to yours 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request x86_64
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants