Was ist JIB?
Das Google Container Tool JIB ist ein Werkzeug um einfach aus einer Anwendung ein Docker Image zu erzeugen. Docker Images sind im Prinzip auch nur Archive, so dass man diese auch ohne Docker bauen kann. Und genau tut das Tool JIB von Google. Es gibt jeweils ein Plugin für Maven und für Gradle. In diesem Beispiel konzentriere ich mich auf die Gradle Variante von JIB.
Setup
Für das JIB Plugin muss Gradle in mindestes der Version 4.6 vorhanden sein. Die aktuelle Version 1.0.2 wird wie gewohnt eingefügt.
plugins {
id 'com.google.cloud.tools.jib' version '1.0.2'
}
Der Erste Build
Ein beherzigtes gradle jib erstellt uns ein Docker Image der Anwendung.
gradle jib
Den Default Server ändern
Benutzt eine Anwendung den TomCat, dann muss man das Basis Image ändern. Der Default nimmt JIB eine auf Jetty basierendes Distroless Image. Hier nun ein Beispiel für die Verwendung von TomCat 8.5, ein auf alpine basieredes Image.
jib {
from.image = 'tomcat:8.5-jre8-alpine'
// ROOT muss angepasst werden
container.appRoot = '/usr/local/tomcat/webapps/ROOT'
}
Alternative
Mit Source 2 Image (S2I) von OpenShift steht hierzu auch eine Alternative zur Verfügung. Diese habe ich aber noch nicht evaluiert. Die Quellen findet man hier: https://github.com/openshift/source-to-image