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

Support alpine images for aarch64 #158

Closed
mrdziuban opened this issue Feb 7, 2022 · 48 comments
Closed

Support alpine images for aarch64 #158

mrdziuban opened this issue Feb 7, 2022 · 48 comments
Labels
enhancement New feature or request

Comments

@mrdziuban
Copy link

Building the alpine images on an Apple silicon (M1) Mac currently fails with an "Unsupported arch: aarch64" error, e.g. from this code. Would it be possible to add support for this architecture? Thanks in advance!

@henrik242
Copy link

@mrdziuban: As a workaround you can use Bellsoft's images. They already have alpine/musl images for aarch64: https://hub.docker.com/r/bellsoft/liberica-openjdk-alpine-musl/tags?page=1&name=17

@gounthar
Copy link

gounthar commented Mar 4, 2022

I guess it would be more difficult than just adding aarch64 for alpine, am I right? (yes, I did it, and it wasn't enough to generate the right Dockerfile in 11/jre/alpine/ for example.
/8/jdk/ubuntu is building fine.

@karianna
Copy link
Contributor

karianna commented Mar 7, 2022

I guess it would be more difficult than just adding aarch64 for alpine, am I right? (yes, I did it, and it wasn't enough to generate the right Dockerfile in 11/jre/alpine/ for example. /8/jdk/ubuntu is building fine.

Definitely more work required (we haven't looked into it yet)

@gounthar
Copy link

gounthar commented Mar 7, 2022

Let me know if I ever can help.

@gounthar
Copy link

@karianna : if ever the blocking point was the lack of hardware for building/testing, let me know, and I'll see what I can do.

@gdams
Copy link
Member

gdams commented May 19, 2022

We are getting ever closer with Alpine aarch64 images. We now have some nightly builds available on the website and aim to get some release builds available soon which can in turn be added to our docker images

@gounthar
Copy link

Fantastic news @gdams , thanks for the update!

@setchy
Copy link

setchy commented Jun 8, 2022

@gdams - is there a published roadmap that would show roughly when the nightly aarch64 images will move to into the release builds?

@karianna
Copy link
Contributor

karianna commented Jun 8, 2022

July PSU is our next best bet (no promised though!)

@gounthar
Copy link

gounthar commented Jul 5, 2022

Hi there 👋

I see regular builds for aarch64 Alpine, which is nice. 🫂
Could anyone please give me a link to the July PSU? I don't know how to find the date linked to that event.
Thanks.

@karianna
Copy link
Contributor

karianna commented Jul 5, 2022

FYI - The Alpine aarch64 builds aren't very stable at the moment. The July PSU even hasn't been created yet.

@sxa
Copy link
Member

sxa commented Jul 5, 2022

Update: Note that at the moment JDK11u buids for Alpine/aarch64 are unstable so we've switched off the nightlies on those for now. Other releases have been left in but have not yet undergone significant analysis of testing results yet.

@gounthar
Copy link

gounthar commented Jul 5, 2022

Thanks for the update @sxa and @karianna 🙏 .

@setchy
Copy link

setchy commented Sep 29, 2022

Hi @sxa, any further updates re timelines for this ticket

@sxa
Copy link
Member

sxa commented Oct 6, 2022

Hi @sxa, any further updates re timelines for this ticket

We need to get it to a state where it fully passes the AQA tests. We've got some versions in a reasonable state and are looking to get systems available that we can run the TCK on (We cannot distribute JDKs that do not pass the TCK.

We have seen some hangs with some Alpine/aarch64 builds with some versions though, which will be blockers for releasing those (From memory JDK11 was affected by that).

You can see the latest nightly build jobs, and grab the artifacts to test them if you want, from the following jenkins jobs:

It's also worth pointing out that as an interim measure if you have Rosetta2 installed on your M1 system you can run the x64 version e.g.

podman run --rm -it --platform=linux/amd64 eclipse-temurin:17-alpine 

Or s/podman/docker/ if that's what you have installed

@efenderbosch
Copy link

Azul Zulu is an alternative vs Bellsoft Liberica for local development:

And this project is building arm64 images of Temurin.

@AB-xdev
Copy link

AB-xdev commented Sep 14, 2023

Can we get a status update if this will be shipped with JDK 21 (which will be GA in ~5 days)?

Thanks in advance :)

@gounthar
Copy link

gounthar commented Sep 14, 2023

The binaries have been working well for us (Jenkins) for a few weeks. Hopefully, the official images will be updated accordingly.

@smlambert
Copy link
Contributor

Adding this to the PMC-agenda, as there appears to be some expectations for September, but I presume this is not going to be the case (not only due to lack of machines in temurin-compliance). Also, it has not to date been added to the 2023 Program Plan (slide 27 pasted below).

Screenshot 2023-09-14 at 11 34 01 AM

@tellison
Copy link
Contributor

@smlambert FWIW the page you reference is from an earlier version of the project plan. The latest plan update (Feb 2023 update) shows the following table - but no material difference for that platform for the reasons you state.

Screenshot 2023-09-19 at 11 27 54

@sxa
Copy link
Member

sxa commented Sep 19, 2023

FYI The latest run (73) of https://ci.adoptium.net/job/build-scripts/job/jobs/job/evaluation/job/jobs/job/jdk21/job/jdk21-evaluation-alpine-linux-aarch64-temurin/ looks pretty good (I believe it's only showing some failures we've seen on x64). SO while I'm not making any promises or setting any target dates if that's consistent then we're close to being able to ship JDK21 on this platform if we can complete a TCK run successfully.

@gounthar
Copy link

That's fantastic news, Stewart!
Thanks. 👍

@sxa
Copy link
Member

sxa commented Sep 22, 2023

We have done a release build and validated that it passes all of the AQA test suite (Not surprising since it's the same code level as the one I mentioned above!) so the TCK is the only thing outstanding (And we do not yet have the TCK material for 21 so none of the platforms have completed that part yet for JDK21)

@tellison
Copy link
Contributor

The PMC discussed this topic at the last meeting. Provided the build passes the applicable compatibility tests we will release it as tertiary (Priority 3) platform. Additional work will be required to deliver as container images etc.

@ipleten
Copy link

ipleten commented Oct 4, 2023

We would appreciate Java 17 for alpine-aarc64. It's a big problem for developers on new Macs M-series.

@sxa
Copy link
Member

sxa commented Oct 4, 2023

We would appreciate Java 17 for alpine-aarc64. It's a big problem for developers on new Macs M-series.

Similar to JDK21 there are nightly builds available through the website at https://adoptium.net/en-GB/temurin/nightly/ or via the API, however unlike JDK21 those are latest nightly development snapshots at present instead of builds based on specific tags.

At present we do not have any specific plan to release this version (especially in light of 21 being the new latest LTS) but you're welcome to try it and give feedback on stability etc.

@sxa
Copy link
Member

sxa commented Oct 11, 2023

Good news! Temurin 21 for Alpine/aarch64 is now available as a tarball download - a container image will follow:

/tmp # wget https://api.adoptium.net/v3/binary/version/jdk-21+35/alpine-linux/aarch64/jdk/hotspot/normal/adoptium
Connecting to api.adoptium.net (20.62.244.126:443)
Connecting to github.com (140.82.114.3:443)
Connecting to objects.githubusercontent.com (185.199.108.133:443)
saving to 'adoptium'
adoptium             100% |****************************************************************|  195M  0:00:00 ETA
'adoptium' saved
/tmp # cat /etc/alpine-release 
3.15.4
/tmp # uname -m
aarch64
/tmp # tar xpfz adoptium 
/tmp # jdk-21+35/bin/java -version
openjdk version "21" 2023-09-19 LTS
OpenJDK Runtime Environment Temurin-21+35 (build 21+35-LTS)
OpenJDK 64-Bit Server VM Temurin-21+35 (build 21+35-LTS, mixed mode, sharing)
/tmp # 

Enjoy :-)

Since this is a new platform, all feedback on it is welcome.

@gounthar
Copy link

gounthar commented Oct 11, 2023

That's excellent news, thank you!

@sxa
Copy link
Member

sxa commented Oct 11, 2023

container now live too as eclipse-temurin:21-alpine :-) I haven't tested specifically on a mac but I can't think of a reason why it wouldn't work:

sxa@test-equinix-ubuntu2004-armv8l-02:~$ uname -a
Linux test-equinix-ubuntu2004-armv8l-02 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:36:35 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
sxa@test-equinix-ubuntu2004-armv8l-02:~$ docker run eclipse-temurin:21-alpine java -version
openjdk version "21" 2023-09-19 LTS
OpenJDK Runtime Environment Temurin-21+35 (build 21+35-LTS)
OpenJDK 64-Bit Server VM Temurin-21+35 (build 21+35-LTS, mixed mode, sharing)
sxa@test-equinix-ubuntu2004-armv8l-02:~$ 

@gdams
Copy link
Member

gdams commented Oct 11, 2023

Closing this issue now. An APK installer for Alpine will be published in the coming days. Thanks to everyone who requested aarch64 builds!

@gdams gdams closed this as completed Oct 11, 2023
@gounthar
Copy link

gounthar commented Oct 11, 2023

Thank you so much for the amazing work.
We'll be able to propose Alpine Jenkins agents for amd64 and aarch64 with jdk21 thanks to you.

@xlight05
Copy link

Thanks a lot for this guys. Please do consider this for Java 17 also if possible =)

@sxa
Copy link
Member

sxa commented Oct 12, 2023

Thank you so much for the amazing work. We'll be able to propose Alpine Jenkins agents for amd64 and aarch64 with jdk21 thanks to you.

We are using a Temurin build on our own jenkins agents (not all yet) so hopefully you won't encounter too many problems with it in that environment @gounthar :-)

@gounthar
Copy link

All should go fine, thanks for your testimony, Stewart. 👍

@rtrad89
Copy link

rtrad89 commented Nov 1, 2024

Thanks a lot for this guys. Please do consider this for Java 17 also if possible =)

Seconded!

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

No branches or pull requests