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

Provide linux/arm64 Docker images #79

Closed
wants to merge 33 commits into from

Conversation

ianks
Copy link

@ianks ianks commented Nov 13, 2022

When using a Macbook M1,rake-compiler-dock images have to run in emulation mode which makes things considerably slower. Docker also spits out a warning about it:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

This PR adds a step to the CI matrix which publishes linux/arm64 versions to Docker hub, which will make my CPU much happier :)

resolves #78

@ianks
Copy link
Author

ianks commented Nov 16, 2022

Can someone trigger a re-run please? :)

@ianks
Copy link
Author

ianks commented Nov 16, 2022

Hmmm, not sure if this error is related to my change set or not, but both amd64 and arm64 are failing on autogen.sh

@flavorjones
Copy link
Collaborator

I've opened up #80 to investigate what's going on with the builds. Seems like bitrot.

@sodabrew
Copy link
Contributor

Can rebase this PR following the #81 merge?

* master:
  ci: run the pipeline weekly on wednesdays
  fix: recent rvm needs autoconf installed
  fix(temp): work around rubygems platform strings
@ianks
Copy link
Author

ianks commented Dec 16, 2022

looks like we're blocked by pypa/manylinux#1412 anyway :/

I was wrong, we should be good now

@flavorjones
Copy link
Collaborator

@ianks you may want to rebase again since I just merged #82

@ianks
Copy link
Author

ianks commented Dec 17, 2022

Alright, here's a summary after I let the builds run overnight:

  • ✅ x86-mingw32
  • ❌ x86-mingw-ucrt - not finding the built-from-source arm64 version of binutils
  • ✅ x64-mingw32
  • ❌ x86_64-linux - choking on building Ruby coroutines on Ruby 3.0
  • ✅ arm-linux
  • ❌ aarch64-linux - rb_thread_call_without_gvl() not found (RuntimeError)
  • ✅ jruby

I need to dive in more to debug these, but figured I'd post a summary in case someone can give a helpful pointer. Wouldn't mind rubber fucking this a bit!

@flavorjones
Copy link
Collaborator

Damn, I think my refactoring of Dockerfile.mri.erb is going to make you have to resolve some minor conflicts. Sorry for the inconvenience.

@flavorjones
Copy link
Collaborator

Also - I was planning on working on #71 this weekend, which would publish "nightly" images to GHCR. If that meets your needs you may be able to drop the tarball upload step in this PR.

* master:
  doc: update History.md
  gitignore the ucrt Dockerfile
  reduce gems installed, move things around
  update base packages for psych and ffi requirements
  move osxcross building into a script
  update to rake-compiler 1.2.1
  update base images with yaml dev package, for psych 5
  turn off parallelism in windows 3.2.0-rc1 build
@@ -13,7 +13,7 @@ set -x
curl -L -o MacOSX11.1.sdk.tar.xz https://github.com/larskanis/MacOSX-SDKs/releases/download/11.1/MacOSX11.1.sdk.tar.xz
tar -xf MacOSX11.1.sdk.tar.xz -C .
cp -rf /usr/lib/llvm-10/include/c++ MacOSX11.1.sdk/usr/include/c++
cp -rf /usr/include/x86_64-linux-gnu/c++/9/bits/ MacOSX11.1.sdk/usr/include/c++/v1/bits
cp -rf /usr/include"$(uname -m)"-linux-gnu/c++/9/bits/ MacOSX11.1.sdk/usr/include/c++/v1/bits
Copy link
Collaborator

Choose a reason for hiding this comment

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

should be /usr/include/$(uname -m)-linux-gnu ... (note the "/")

@ianks
Copy link
Author

ianks commented Dec 17, 2022

This branch is kind of FUBAR at the moment, and I'm having trouble piecing things together. TBH, I'm not sure about the feasibility of this patch...

@flavorjones
Copy link
Collaborator

@ianks OK, don't feel pressured to land this in time for Ruby 3.2 support, we can add it in a 1.3.x patch release when it's ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Publish images for the linux/arm64 Docker platform
3 participants