I have been using Docker to run Glassfish in a container and I noticed some news about using Alpine Linux.Apparently, you create much smaller containers with Alpine Linux. This article from Atlassian (https://developer.atlassian.com/blog/2015/08/minimal-java-docker-containers/) mentioned a minimal base image with OpenJDK.
Since I prefer to use the Oracle JDK with Glassfish 4.1, I ran a few tests myself to compare a phusion baseimage with Alpine Linux.
My Phusion based container produced an image 1130 MB large, while the Alpine Linux based image was only 392 MB. To produce a working application, I used the Primefaces showcase WAR.
I am surprised about the size differences, see the resulting images:
Phusion baseimage + Java 8 + Glassfish 4.1
phusion/baseimage 305 MB ubuntu-oracle-jdk8 892 MB koert/glassfish-4.1 1130 MB koert/glassfish-showcase 1156 MB
Alpine Linux + Java 8 + Glassfish 4.1
frolvlad/alpine-oraclejdk8 170.8 MB koert/alpine-glassfish-4.1 391.8 MB koert/alpine-glassfish-showcase 417.8 MB
My examples at Github
- https://github.com/koert/docker-ubuntu-oracle-jdk8
- https://github.com/koert/docker-glassfish
- https://github.com/koert/docker-glassfish-showcase