Proposal to switch from OpenJDK to AdoptOpenJDK

202 views
Skip to first unread message

Jim Crowley

unread,
Oct 18, 2019, 4:09:21 PM10/18/19
to Jenkins Developers

I posted this proposal on GitHub, https://github.com/jenkinsci/docker/issues/893, but also wanted to get the feedback of the community here.

 


As we start to look into supporting multiple architectures, we might want to pivot from using OpenJDK to AdoptOpenJDK. There are couple reasons behind this.

 

First, it makes our build scripts and Dockerfiles easier to maintain. Currently, in publish-experimental.sh, we have logic that handles pulling from the “right” OpenJDK for a specific architecture. This could be remove as the AdoptOpenJDK Docker image, https://hub.docker.com/_/adoptopenjdk, has a manifest file that will handle pulling the correct image for the given architecture.

 

 

Second, the OpenJDK image’s we are pulling from to build out our multi-arch images, s390x/ openjdk:8-jdk, arm32v7/openjdk:8-jdk, etc. will not be updated anymore. This has to do with OpenJDK not publishing “official” binaries for these architectures. More information on this issue can be found here, https://github.com/docker-library/openjdk/issues/364#issuecomment-540821603.

 

 

Third, this would pair nicely with the proposal to add OpenJ9, https://github.com/jenkinsci/docker/issues/884. The AdoptOpenJDK image has tags that support OpenJ9, so it should not be to much more work to support this additional tag for our Jenkins images.



The only roadblock right now is the base image/tag support the official AdoptOpenJDK image on DockerHub. Currently, they only support an Ubuntu and Widows Server Core base image. I talked with the Adopt team, Alpine and Debian, Ubi base images are coming down the pipeline. This is aimed at the next PR to the official DockerHub image repository. CentOS/ClefOS are also coming but I do not have an ETA.

Now we could wait for the official image or we could use the unofficial images the Adopt team does produce. Using the unofficial images does provide us with Alpine, Debian, etc support quicker. But they will be unofficial images, which I know some users do not like to use.


Either way, I wanted to get community feedback! So please let me know what you think of this proposal. 

Mark Waite

unread,
Oct 18, 2019, 6:54:08 PM10/18/19
to jenkinsci-dev
Thanks very much for starting the discussion.

I'm interested in evaluating the switch from OpenJDK to AdoptOpenJDK.  I've been using JDK 8 and 11 hotspot builds from AdoptOpenJDK for many months with very good results.

Several of the OpenJDK providers (Red Hat, Amazon, Azul) seem to be limiting their platform support much more than AdoptOpenJDK does.  So long as we can get the platforms we need (Debian, CentOS, UBI), I'm interested in evaluating the change.

I thought there were specific barriers that prevent Alpine Linux support, though I see that Azul provides an Alpine Linux build for 8, 11, and 13.

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/6eb646a8-6835-4720-beca-9afe95fa0ca0%40googlegroups.com.


--
Thanks!
Mark Waite

Jim Crowley

unread,
Oct 22, 2019, 9:30:27 AM10/22/19
to Jenkins Developers
Mark,

For Alpine are you referring to the issue with glibc vs musl? It looks like the AdoptOpenJDK team built Alpine images with glibc install on top of the base image. You can look at the Dockefile here, https://github.com/AdoptOpenJDK/openjdk-docker/tree/master/8/jdk/alpine

I am loving the AdoptOpenJDK team's support for multiple platforms too! I think it is also nice having all the OpenJ9 builds as well as Hotspot. Give users more choice is a good thing! I am really hoping for an arm port of OpenJ9 down the line!

Let me know if you have any more questions!
To unsubscribe from this group and stop receiving emails from it, send an email to jenkin...@googlegroups.com.


--
Thanks!
Mark Waite

Mark Waite

unread,
Oct 22, 2019, 1:47:56 PM10/22/19
to jenkinsci-dev
Yes, issues with musl vs. glibc were the key reason that I had heard for OpenJDK to not be willing to support Java 11 on Alpine.

I don't see any mention of Alpine or Debian on the official images page at  https://hub.docker.com/_/adoptopenjdk .  There is mention of Alpine and Debian on the unofficial images page at https://hub.docker.com/r/adoptopenjdk/openjdk8 .  Is there somewhere that the difference between official and unofficial AdoptOpenJDK images is described?

To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/c159ed57-6990-4a66-9756-38517e6800f3%40googlegroups.com.


--
Thanks!
Mark Waite

Irwin D'Souza

unread,
Oct 22, 2019, 4:30:20 PM10/22/19
to jenkin...@googlegroups.com
I mentioned this thread on the AdoptOpenJDK slack instance; it looks like there's been talks around increased Docker base image coverage:  https://github.com/AdoptOpenJDK/openjdk-docker/issues/236 & https://github.com/AdoptOpenJDK/openjdk-tests/issues/1109

Jim Crowley

unread,
Oct 22, 2019, 4:46:59 PM10/22/19
to Jenkins Developers

Mark,

Currently, AdoptOpenJDK does not support Alpine or Debian in the official images. But this will be changing in the next PR slotted to get pushed to the official Docker library. I talked with the Adopt team last week about support. Currently, they need to expand their testing to support the additional base images/tags. That is the reason Alpine did not make the cut in the last PR, since there was not enough testing done, https://github.com/docker-library/official-images/pull/5710#issuecomment-486972430.

The unofficial AdoptOpenJDK images do support Alpine and Debian, like you mentioned, but are nightly builds.

I am not sure if there is an official place for a description between the official images vs the unofficial images. What I know is that the official images go through additional testing before they are submitted as PR to the Docker Library. They do mentioned the “other” builds are not TCK certified under the notes area, https://github.com/AdoptOpenJDK/openjdk-docker#supported-builds-and-build-types.



--
Thanks!
Mark Waite

Jim Crowley

unread,
Oct 22, 2019, 4:49:19 PM10/22/19
to Jenkins Developers

Irwin,

 

Thanks for the links! One of those issue is one I opened up! Like I mentioned to Mark, I spoke with the Adopt team and the additional support of more base images are coming in the next PR. The testing framework needs to be updated first to support the additional bases.



On Tuesday, October 22, 2019 at 4:30:20 PM UTC-4, Irwin D'Souza wrote:
I mentioned this thread on the AdoptOpenJDK slack instance; it looks like there's been talks around increased Docker base image coverage:  https://github.com/AdoptOpenJDK/openjdk-docker/issues/236 & https://github.com/AdoptOpenJDK/openjdk-tests/issues/1109



--
Thanks!
Mark Waite

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkin...@googlegroups.com.

Mark Waite

unread,
Oct 22, 2019, 5:04:20 PM10/22/19
to jenkinsci-dev
This seems like a very good topic for discussion in the Jenkins Platform Special Interest Group meeting Thursday at 14:00 UTC ( https://jenkins.io/sigs/platform/#meetings)  .  I've added two items to the agenda (https://docs.google.com/document/d/1bDfUdtjpwoX0HO2PRnfqns_TROBOK8tmP6SgVhubr2Y/edit#).  

The meeting is hosted through Zoom video conferencing and is recorded.  The meeting URL is posted to the Gitter channel about 10 minutes before the meeting starts ( https://gitter.im/jenkinsci/platform-sig).

To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/4c6fe5e0-6b57-463a-839b-4f7b1fd8246b%40googlegroups.com.


--
Thanks!
Mark Waite

Jim Crowley

unread,
Oct 23, 2019, 1:08:42 PM10/23/19
to Jenkins Developers
Thanks for the information and invite. I'll try to make it tomorrow. 


--
Thanks!
Mark Waite

Oleg Nenashev

unread,
Oct 25, 2019, 2:03:38 PM10/25/19
to Jenkins Developers
Sorry for being late to the thread. I am +1 for migrating Jenkins to AdoptOpenJDK by default.
We already run significant parts of our infrastructure on AdoptOpenJDK, and so far I have not seen any issues when the HotSpot engine is used.
OpenJ9 would be much more tricky taking the historical reports in Jenkins JIRA.

We also have an option to ship OpenJDK and AdoptOpenJDK images in parallel and then move when we feel it works well.
Bonus points for switching to Java 11 by default at the same time :D


BR, Oleg

Jim Crowley

unread,
Oct 25, 2019, 2:09:42 PM10/25/19
to Jenkins Developers
Oleg,

That’s a good idea. Support both before we make the full switch over to AdoptOpenJDK.

As for your comment on OpenJ9, what did you mean by saying it will be more tricky taking historical reports in JIRA?

Is there an issue/discussion open for the move to Java 11? I would love to see this happen as well!

Oleg Nenashev

unread,
Oct 25, 2019, 2:21:27 PM10/25/19
to JenkinsCI Developers
As for your comment on OpenJ9, what did you mean by saying it will be more tricky taking historical reports in JIRA?
Will try to reply later once I have time to find issue links 
 
Is there an issue/discussion open for the move to Java 11? I would love to see this happen as well!
No discussion. JEP-211 deliberately set no timeline for switching to Java 11 by default. We ship official OpenJDK 11 images tho.
But for me it is a no-brainer that we should switch sooner or later. Our default images do not set experimental flags for Java 8 to enable integration with cgroups, so basically Jenkins does not apply resource restrictions n Docker and K8s.
I think Java 11 enablement is justified just by this fact.

 

You received this message because you are subscribed to a topic in the Google Groups "Jenkins Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-dev/nI_eln7FLiM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/3f47172f-d09e-4601-b239-fa3b8205197c%40googlegroups.com.

Tim Jacomb

unread,
Oct 25, 2019, 2:27:06 PM10/25/19
to jenkin...@googlegroups.com
You shouldn’t need to set any flags on java 8 since u191 for enhanced container support




To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAPfivLA_WHt9M2ObHHkwy2KOhBbwFC6RoC_T9gO%2BE6YzKpdC4A%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages