Currently there is only an x86 ubuntu Dockerfile in openjdk-build.
Would there be interest to expand the platform support beyond this one platform (i'm thinking hardware platforms more than OS, but I suppose there could be an argument for both)?
I'm keen to have s390x, ppc64le and aarch64. Perhaps a few others too? Perhaps we could get together and work on getting some of this work done?
I would be happy to help, maybe after one of #166 / #168 wraps up.
As many as possible would be welcome I'm guessing :-)
Using fat manifests so that docker pull adoptopenjdk/openjdk8 works on all architectures would be pretty neat.
https://developer.ibm.com/linuxonpower/2017/07/27/create-multi-architecture-docker-image/
@gibfahn yes, @dinogun has done this before for the JDK, so he's best placed to handle / advise on that.
Ref multi-arch builds, it is only possible if the builds are official Docker maintained ones (Unless we are looking to maintain a public docker registry, say on adoptopenjdk.net).
Docker Official repos -> https://docs.docker.com/docker-hub/official_repos/
Docker now owns the "arch/" namespaces (s390x, ppc64le, i386, arm64 etc) on hub.docker.com.
I think having an official image such as "OpenJDK-build" (Different from the currently available "OpenJDK" for just the binaries) maintained by docker will be a great advert for AdoptOpenJDK and help developers access multi-arch images as well.
Great idea, could we draw up a matrix of the platform/os/container environments we intend to support, minus the ones covered by others already (i.e. Docker Hub, etc).
On the same topic, are we supporting all other bare-metal / virtual platforms yet, I had mentioned a couple in one of the meetings? Would love to pick them up if everyone agrees.
@gdams let me know when you start working on the ones you mentioned, I would like to take part, have done some of these previously.
openjdk-docker now exists as a project and will need to have the building of its images added to our Jenkins server.
Looking forward to seeing this, especially for the Arm builds. I would note that @estesp who has been championing the multiarch stuff is from IBM.
For arm it would be good to have both aarch64 and arm (32 bit), and while the traditional approach is the x86 hosted cross compiler tool-chains it would be nice to have native images to reach a wider audience (and the purists amongst us!). There are plenty of 8-core SBCs that run docker quite happily.
I'm working on using Docker for the arm 32-bit builds. It seems to be the most tractable way of building for 32-bit on a 64-bit server with reasonable performnce.
We have x64, ppc64le, s390x and aarch64 support in https://ci.adoptopenjdk.net/view/Docker%20Images/job/openjdk_build_docker_multiarch/ - So of the ones discussed in this thread only 32-bit ARM is missing. Are there any blockers to putting arm32 builds up at the moment @dinogun ?
Maybe @mstoodle can answer that question. We currently dont have arm32 builds, not sure what is the pending work. Adding support for arm32 docker images once a build is available should be pretty easy enough.
Arm32/OpenJ9 should be doable, but I've only being working on it for cross-compilation. Arm32/Hotspot should be able to use the same cross-compilation environment as OpenJ9, as I tested the dockerfile with both near the beginning of the work. The work needed is to replicate/integrate the build environment based on the Dockerfile in https://github.com/eclipse/openj9/blob/master/buildenv/docker/jdk9/armhf_CC/arm-linux-gnueabihf/Dockerfile with the Adopt build system.
Going to close this issue - we will accept Pull Requests but as a team will not create them ourselves.