Using AZUL 7 instead of OpenJDK Java for smaller Docker images.
Witness a tale of two Dockerfiles that perform the same task. See the size difference. Imagine how it might change infrastructure costs.
Notice the only difference is which Java is being installed. Here are the image sizes:
That's a 288MB difference.
DOCKERFILE ONE
FROM debian:wheezy RUN apt-get update && apt-get install -y openjdk-7-jre && rm -rf /var/lib/apt/lists/* ADD target/si-standalone-sample-1.0-SNAPSHOT.jar / ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64 ENV CLASSPATH si-standalone-sample-1.0-SNAPSHOT.jar CMD [ "java", "org.springframework.boot.loader.JarLauncher" ]
DOCKERFILE TWO
FROM debian:wheezy RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x219BD9C9 && \ echo "deb http://repos.azulsystems.com/ubuntu precise main" >> /etc/apt/sources.list.d/zulu.list && \ apt-get -qq update && \ apt-get -qqy install zulu-7 && \ rm -rf /var/lib/apt/lists/* ADD target/si-standalone-sample-1.0-SNAPSHOT.jar / ENV JAVA_HOME /usr/lib/jvm/zulu-7-amd64 ENV CLASSPATH si-standalone-sample-1.0-SNAPSHOT.jar CMD [ "java", "org.springframework.boot.loader.JarLauncher" ]
Notice the only difference is which Java is being installed. Here are the image sizes:
spring-integration openjdk 549.1 MB spring-integration azul 261.3 MB
That's a 288MB difference.