apiman-docker
apiman-docker copied to clipboard
Unify Base Images
We should decide on a base JDK for builds and a small and light JRE image for runtime.
Basically any version of Java will work fine. However, my preferences are:
- Use the same version Java to make our lives easier (latest TLS?).
- Use a distro that has Shenandoah GC. If you don't use it, then it has no negative impact, but it has plenty of good use-cases for the gateway (low latency for anyone doing stuff with large heap or lots of GC). AdoptOpenJDK and Adoptium I think should be fine.
- Java 17 LTS will be out soon, so could go for that? Should release next month.
- Probably use a slim image? e.g. Centos slim or similar?
Yes, I would go with the LTS version of java. For the migration-assistant and the new gateway image, I used the slim JRE images from adoptopenjdk (java 11). Wildfy and Tomcat are official images.
I'm personally happy to go with Adopt for all our images because they are backed by Red Hat, IBM, TomiTribe Microsoft, Alibaba, etc.
One other thought I had last night was that we could consider compiling our CLI tools with GraalVM or similar to really squash them down in size to a couple of MB.
I would wait till Adoptium releases docker build under the new name and then we could switch. But I would stay with the official wildfly/tomcat images for now or switch to bitnami for widfly/tomcat because they have good and secure written docker base images.
We probably have to wait a while and follow the discussion if we do not want to build the jre ourselves https://github.com/adoptium/temurin-build/issues/2683