Cloud Native Buildpacks mit Paketo
Dockerfiles sind zwar toll, doch in vielen Projekten könnte man darauf verzichten.
Publiziert am von Markus Tanner
Dockerfiles sind zwar toll, doch in vielen Projekten könnte man darauf verzichten.
Publiziert am von Markus Tanner
Bei uns werden fast alle Applikationen als Docker-Container ausgeliefert. Für die Erstellung von Containers schreiben wir in der Regel ein Dockerfile. Das ist eigentlich eine tolle und sehr flexible Sache. Doch es gibt auch Punkte, die man beim Erstellen von Dockerfiles nicht ausblenden darf:
Diese Arbeit kann man sich unter Umständen sparen, indem man Cloud Native Buildpacks einsetzt. Die Idee von diesen Buildpacks stammen ursprünglich von Heroku. Daraus ist dann eine Spezifikation entstanden, welche es ermöglicht mit einem Kommando vom Source Code zum Docker-Container zu kommen.
Eine Implementation dieser Spezifikation ist paketo. Mit dem Kommando “pack” wird zunächst eine “detect”-Phase ausgeführt, um zu ermitteln, welches Buildpack am besten zum Code passt. Bei der zweiten Phase “build” wird dann anhand der ermittelten Informationen ein neues Image erstellt, welches sogar OCI-konform ist.
Mit Spring Boot ist die Erstellung von solchen Buildpacks enorm simpel. Das Spring Boot Gradle Plugin beinhaltet bereits einen Task, welcher das Buildpack erstellt. Man muss nur folgendes Kommando ausführen und schon wird der Container bereitgestellt.