Schieb’ den Wal zurück ins Meer...

Google Jib 1.0: Java-Anwendungen ohne Docker sauber und schnell in Container packen

Dominik Mohilo

© Shutterstock / Microstocker13

Java-Anwendungen zu containerisieren war noch nie so leicht: Mittlerweile braucht man dafür nicht einmal mehr Docker. Dank Google Jib, das gerade in Version 1.0 erschienen ist, können Entwickler auf umständliche Wege zum Container Image verzichten und eine Abkürzung nehmen. Wir haben uns angesehen, was das erste Major Release für neue Features an Bord hat.

Wir schreiben das Jahr 2018. Container im Mainstream angekommen und Docker kein Hype-Thema mehr, heute Spricht man von Kubernetes und Orchestrierung. Und scheinbar wird auch die Frage laut, ob man überhaupt noch Docker braucht, um Java-Anwendungen in Container zu packen. Für Google war der Weg über das Erstellen eines JARs und das Aufsetzen eines Dockerfiles, die dann von Docker via Docker Daemon in ein Container Image gepusht wurden, ein wenig sehr aufwendig.

Der Herausforderung, das Ganze simpler zu gestalten, stellte man sich mit dem Erschaffen des Projektes Google Jib. Das eigentliche Ziel, das Image nämlich, wird lokal gebaut, der Docker Daemon wird hierfür nicht kontaktiert. Metadaten und sämtliche vorhandene bzw. benötigte Schichten des Images werden lokal erzeugt, wahlweise im Docker-eigenen Format oder im OCI-Format. Nutzt man Jib in seinem Java-Projekt, wird dieser ganze Proess direkt aus dem Java Code des Plug-ins heraus durchgeführt, auf externe Tools (wie Docker) wird dabei wie gesagt komplett verzichtet.

Google Jib 1.0: Das ist neu

Zunächst einmal eine deutliche Klarstellung: Laut Google ist Jib mit der Veröffentlichung des ersten Major Releases stabil und bereit für den Einsatz in der Produktion. Das heißt, die Beta- bzw. Test-Phase ist abgeschlossen und Google Jib kann endlich bedenkenfrei in den Entwicklungsprozess integriert werden.

Version 1.0 von Jib bringt zunächst einmal Webentwickler, die ihre Anwendungen mit Java schreiben, zum Strahlen. Googles Tool unterstützt WAR-Dateien und benötigt dafür nicht einmal eine besondere Konfiguration. Als Anwendungsserver wird standardmäßig Jetty verwendet, aber das ist nicht in Stein gemeißelt: Mit einer entsprechenden Modifkation im Basis-Image und appRoot können auch Anwendungsserver wie Tomcat etc. verwendet werden.

Mit Skaffold bzw. der Integration des Kommandozeilentools in Jib eröffnet sich Java-Entwicklern ein Tor in die Welt von Kubernetes. In Skaffold selbst ist Jib als sogenannter Builder verfügbar. Um das Tool in einem Java-Projekt verwenden zu können, muss man es zunächst installieren und dann eine YAML-Datei mit dem Namen skaffold.yaml und folgendem Inhalt dem Projekt hinzufügen:

skaffold.yaml:

apiVersion: skaffold/v1beta4
kind: Config
build:
  artifacts:
  - image: gcr.io/my-project/my-java-image
    # Use this for a Maven project:
    jibMaven: {}
    # Use this for a Gradle project:
    jibGradle: {}

Weitere Informationen Google Jib gibt es im Blog-Posting von Qingyang Chen und natürlich auf GitHub. Einen Einführungsartikel zum Thema hat unser Autor Roland Huß im vergangenen Jahr verfasst:

10 kreative Wege, Docker Images zu bauen: Jib

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: