Docklands: Java EE Docker Images In "Docker Central" 📎
Docklands comprises Java EE-relevant (Wildfly, Payara, TomEE, WebSphere Liberty, WLS, Tomcat (...)) Dockerfiles
, directly available from hub.docker.com/u/airhacks/.
Docklands images are heavily relying on image layering.
A typical Java EE application comprises the following layers:
airhacks/java
: the OS + Java layer. Only serves as a base, "abstract" layer. Changes on OS and Java releases and patches.airhacks/[appserver]
: this layer inherits fromairhacks/java
and only contains the application server installation. Only changes on new application server releases.airhacks/[appserver]-configured
: inherits from 2. and contains project-specific configuration like e.g. JMS Queues, JDBC DataSources etc. Has to be rebuilt on projects-specific configuration changes like e.g. -Xmx or -Xms changes. This layer is optionalairhacks/[project-name]
: inherits from 2. or 3. Only contains a Thin War. Is rebuilt with eachmvn package
Fortunately the base images are big, but have to rebuilt only a few times in year. The application / project images change several times a day, but are tiny. The creation of a full docker image with https://github.com/AdamBien/docklands takes usually: ~100ms and only adds the WAR size (usually a few MB) to the total size.
The base images exist only once at your hard drive and are shared across different application servers and applications (aka microservices).
Try it: docker run -d -p 8080:8080 --name payara-ping airhacks/payara-ping
Checkout docklands for the sources, or docklands at hub.docker.com for ready to use images.
Docklands in action:
See you at Java EE Workshops at Munich Airport, Terminal 2 and particularly at Java EE 7 Microservices. Is MUC too far? Checkout: javaeemicro.services.