jruby / docker-jruby

MIT License
18 stars 27 forks source link

ARM64 image not really available? #78

Closed jcavalieri closed 2 years ago

jcavalieri commented 2 years ago

I was trying to pull the latest jruby image on an M1. There is a label on docker hub for arm64.

Screen Shot 2022-02-10 at 4 31 19 PM

But when I go to pull it doesn't appear that there is one. Also I don't see it listed here either: https://hub.docker.com/_/jruby?tab=tags

Is there no arm64 image?

Thanks, John

headius commented 2 years ago

Huh, I didn't even know we had that in there. We took over this image from a user that had been maintaining it. I will look into getting an arm64 image pushed!

jcavalieri commented 2 years ago

Thanks!

jcavalieri commented 2 years ago

Hi @headius,

I saw the announcement for 9.3.4.0 with better arm support. Any word on getting an official arm image on Docker Hub?

Thanks, John

headius commented 2 years ago

I will see what I can do today!

headius commented 2 years ago

Looks like adding arm64v8 support should be easy enough, since the base openjdk images support it. For other platforms we will probably need to use a different base image... patches accepted.

I pushed https://github.com/docker-library/official-images/pull/12163 which appears to be ready to merge. Hopefully that will be enough for arm64v8 and M1!

headius commented 2 years ago

It is not clear to me how to change the list of platform tags on the official image page.

As you can see from my PR above, our configuration for the official image only included "amd64" and if you scroll down on the page you would see that as the only supported architecture (prior to my PR being merged and propagated).

I see the same list of tags on other projects that also do not support all those architectures, such as https://hub.docker.com/_/openjdk.

headius commented 2 years ago

From my M1 machine:

[] /tmp/docker $ docker pull jruby
Using default tag: latest
latest: Pulling from library/jruby
fa223d8c149d: Already exists 
17ffbd2ab159: Already exists 
a3953e76cee2: Already exists 
6a7231566dec: Pull complete 
0f7d2aecfeab: Pull complete 
112cd66392a9: Pull complete 
73c9b7910dcb: Pull complete 
6ad2a8beb51e: Pull complete 
51271e91f2fe: Pull complete 
18ad0a0e7370: Pull complete 
413a6604f8d1: Pull complete 
Digest: sha256:bb4357e4e4df32564fbb7815d08733c013aaecdb7c24a3a4bd8c527ce226bacf
Status: Downloaded newer image for jruby:latest
docker.io/library/jruby:latest

[] /tmp/docker $ docker run -it jruby
irb(main):001:0> ENV_JAVA['os.arch']
=> "aarch64"

Success!

headius commented 2 years ago

Oh and the latest update on those tags... they are not directly controlled by any repository we can contribute to, but @tianon is going to ask the hub team about it.

risicle commented 2 years ago

9.2 images would be helpful too. Seem to build successfully for me on an aarch64 mac.

headius commented 2 years ago

We have not done any work to actively support M1 in JRuby 9.2, but the patch set should be pretty small if we wanted to do it. It's not being actively released at the moment though.

headius commented 2 years ago

Or to put in another way, if somebody wants to come up with a pull request that brings 9.2 M1 support in line with JRuby 9.3 and master, it would go a long way towards getting it into a release.