My organization runs a large Kubernetes deployment with many teams building microservices using Spring Boot. We don't have a standard base Java image so teams generally build their own. A quick survey of images shows that many of them range in size from 600-900MB, even though their built Spring app is only 500-100MB. (Many teams start with CentOS, run yum update, hardening, yum install Java, more yum update, etc.) To streamline our processes and make efficient use of our resources, we'd like to create a single image for Java 11 applications and would like to keep the base as small as possible.
So far, I have found a few popular Docker images for Java 11 including gcr.io/distroless/java:11 (195MB), adoptopenjdk/openjdk11:jre-11.0.4_11-alpine (141MB), and openjdk:11.0-jre-slim (204MB). I've also looked into using jlink but don't want to troubleshoot issues when we missed a module that some team uses.
What base Docker image do you use for running Java 11 microservices? Do you build your own? Any reasons we shouldn't just go with adoptopenjdk since it is the smallest?