-
Notifications
You must be signed in to change notification settings - Fork 63
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
Make AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actions #24
Make AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actions #24
Conversation
core/javaAction/Dockerfile.OpenJ9
Outdated
@@ -0,0 +1,10 @@ | |||
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u152-b16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should replace the current image using oracle jdk and replcae the current java8action one with with this openjdk which uses ubuntu/debian based, transparent transition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
then we can close the other PR as this takes care of it ???
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I checked the docker hub of AdpotOpenJDK I just see adoptopenjdk/openjdk8-openj9
, where are you getting this Adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u152-b16
from ?
Please refer the tags section https://hub.docker.com/r/adoptopenjdk/openjdk8-openj9/tags/ x86_64-ubuntu-jdk8u152-b16 |
@Param-S @csantanapr check this https://github.com/kameshsampath/adoptopenjdk , I have made the docker images temptable which right now builds JDK8/JDK9 for Centos/Debian using AdoptOpenJDK builds for both hotspot/openj9. This should reduce our maintenance much easier. WDYT? |
@kameshsampath It will be useful. But, I think, we can have separate discussion as we may need to focus on less footprint images (like alpine based). We can have this discussion separately in issues, discuss on the need to support another distro, advantages & etc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please replace current image do not create new one.
gradle/docker.gradle
Outdated
@@ -29,8 +29,8 @@ ext { | |||
dockerRetries = project.hasProperty('dockerRetries') ? dockerRetries.toInteger() : 3 | |||
dockerBinary = project.hasProperty('dockerBinary') ? [dockerBinary] : ['docker'] | |||
dockerBuildArg = ['build'] | |||
dockerFile = project.hasProperty('dockerFile') ? dockerFile : 'Dockerfile' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to change docker.gradle.
Please replace the current image in https://github.com/apache/incubator-openwhisk-runtime-java/blob/master/core/javaAction/Dockerfile
Just thought it is relevant to this discussion - Advantages with OpenJ9 |
7adbbce
to
32ab6ba
Compare
@csantanapr made modification to make AdoptOpenJDK_EclipseOpenJ9 JDK image is the default for Java actions |
actionContainers.JavaActionContainerTests > Java action should handle unicode in source, input params, logs, and result FAILED. Looking at the failure |
It could be related to locale and utf need to be set in env in the runtime |
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US:en | ||
ENV LC_ALL en_US.UTF-8 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You’ll want to restore these.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven’t looked at the new dockerfile dependence below. If these aren’t set you’ll need to reset them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep those are the ones I was referring 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Restored the locale specific environment variable settings.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @rabbah @csantanapr Restoring the environment variable solved the issue. All checks passed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed you added the locales package here. Good belt-and-suspenders approach.
32ab6ba
to
9589f83
Compare
The latest OpenJ9 Docker images have now been marked as TCK certified, and so the Dont use in Production banner has been removed as well. @Param-S Please use the tag jdk8u162-b12_openj9-0.8.0 (This is a multi-arch tag and works on x86_64, ppc64le and s390x) |
45bd5c9
to
a9289f6
Compare
Updated Docker file with latest AdoptOpenJDK TCK compliant docker build. |
core/javaAction/Dockerfile
Outdated
@@ -1,38 +1,23 @@ | |||
FROM buildpack-deps:trusty-curl | |||
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u162-b12_openj9-0.8.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I mentioned in my comment, use the jdk8u162-b12_openj9-0.8.0
tag rather than the x86_64-ubuntu-jdk8u162-b12_openj9-0.8.0
a9289f6
to
c05de88
Compare
I’m working my way through a multi-architecture build for this. Is there a reason we feel the need to build the proxy JAR within the Docker image? My gut would be to build it once on the build machine and copy the resulting JAR onto the Docker image. Thoughts? |
Running into the unicode failure again using jdk8u162-b12_openj9-0.8.0. The environment variables mentioned above are set in the runtime and also in the test compile environment. Any thoughts on additional potential causes? |
@jonpspri which testcase fails with the latest Docker image. |
@Param-S The same unicode test case as above. Hold tight — I seem to have some classpath issues and may not be running the correct test issues. Will be filing a PR over in |
I think I found my problem buried in a circular dependency on |
Found it. For whatever reason, the proxy was running using the ‘US-ASCII’ code page to log to the Docker log. Safest and most explicit resolution is to add ‘-Dfile.encoding=UTF-8’ to the CMD line. That way there’s no room for confusion. |
core/javaAction/Dockerfile
Outdated
|
||
CMD ["java", "-jar", "/javaAction/build/libs/javaAction-all.jar"] | ||
CMD ["java", "-Xshareclasses:cacheDir=/javaSharedCache,readonly", "-Xquickstart", "-jar", "/javaAction/build/libs/javaAction-all.jar"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest also adding ‘-Dfile.encoding=UTF-8’. I think that may even do away with the need to use the locales apt package (though nothing is certain when it comes to locales.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agree. I update the PR
c05de88
to
e842640
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@Param-S could you rebase the PR? |
Enable AdoptOpenJDK + Eclipse OpenJ9 JVM is the Java runtime for OpenWhisk Java actions. Signed-off-by: Parameswaran Selvam <sparameswara@gmail.com>
e842640
to
d55dc47
Compare
@csantanapr rebased the PR. |
Eclipse OpenJ9 runtime for Java is opensource runtime which is available as binary through AdoptOpenJDK community builds. By making available of the Eclipse OpenJ9 for OW Java actions, it gives the developers the option to choose between different Java runtime implementations.
Signed-off-by: Parameswaran Selvam sparameswara@gmail.com