Zum Hauptinhalt springen

CooLWJ durchsuchen

选择搜索范围,输入关键词后按回车。

Sprache

Die besten 3 Möglichkeiten, mit SpringBoot Docker-Images zu erstellen

Dieser Artikel stellt 3 Techniken vor, mit denen sich SpringBoot-Anwendungen mithilfe von Maven als Docker-Images bauen lassen.

(1) Mit dem in spring-boot-maven-plugin integrierten build-image.

(2)Verwendung von Googles jib-maven-plugin。

(3)Verwendung von dockerfle-maven-plugin。

Spring Boot-Anwendung

Für die praktische Umsetzung benötigen wir ein Spring Boot-Projekt.

Adresse des Demo-Projekts:

https://github.com/davelms/me...

Projektumgebung:

  • Java 11

  • Maven 3.6.3

Verwendung von mvn package Das jar-Paket lässt sich ordnungsgemäß erstellen.

kann ebenfalls ordnungsgemäß ausgeführt werden:

java -jar target/demo-application-0.0.1-SNAPSHOT.jar

Testseite:

http://localhost:8080/hello

Das Demo-Projekt ist fertig, nun erproben wir die 3 Methoden zum Erstellen von Images.

I、build-image des Spring Boot Maven-Plugins

Spring Boot bringt ein eigenes Plugin zum Erstellen von Docker-Images mit. Wir müssen nichts ändern, da es bereits über spring-boot-starter-parent in der pom.xml enthalten ist.

Du musst weder ein Dockerfile schreiben noch dich um weitere Dinge kümmern. Das Plugin übernimmt alles für dich, etwa die von Spring empfohlenen Maßnahmen zu Sicherheit, Speicher und Leistung.

Es genügt, einfach Folgendes auszuführen:

mvn spring-boot:build-image

Nach Abschluss der Ausführung erscheint eine Erfolgsmeldung:

Container zum Testen ausführen:

docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT

Hinweis: Der hier zugeordnete lokale Port ist 9090。

II、jib-maven-plugin

Jib ist ein Plugin für Maven und Gradle, mit dem Docker-Images erstellt werden.

Dieses Plugin hat eine besonders auffällige Eigenschaft:Docker muss nicht lokal installiert werden,das ist für die kontinuierliche Integration sehr praktisch. Jib kann direkt in die angegebene Docker-Registry pushen.

Bei Jib muss ebenfalls kein Dockerfile geschrieben werden.

Auch die Verwendung ist sehr einfach: Der Code muss nicht geändert werden, und auch die pom.xml kann unverändert bleiben.

Es muss lediglich Folgendes ausgeführt werden:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
  • mvn compile

ist der uns wohlbekannte Maven-Kompilierungsbefehl.

  • com.google.cloud.tools:jib-maven-plugin:2.3.0

Legt die Verwendung des Jib-Plugins fest

  • dockerBuild

ist das Ausführungsziel des Jib-Plugins,dockerBuild Legt fest, dass Jib unser lokal installiertes Docker verwendet.

Nach Abschluss der Ausführung erscheint eine Erfolgsmeldung:

Container zum Testen starten:

docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT

Hinweis: Der hier zugeordnete lokale Port ist 9091。

III, dockerfile-maven-plugin

Für dieses Plugin müssen wir eine Dockerfile schreiben; im Domo-Projekt ist sie bereits vorbereitet.

Die Dockerfile muss im Stammverzeichnis des Projekts neben der pom.xml liegen.

Anschließend müssen in pom.xml einige Konfigurationen ergänzt werden, um das Repository, das Tag und das oben im Dockerfile definierte JAR_FILE。

Ausführen mvn package wird das Image automatisch erstellt. Nach Abschluss der Ausführung erscheint folgende Meldung:

image

Container ausführen:

docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT

Hinweis: Der zugeordnete lokale Port ist 9092。

Zwischenfazit

Von diesen 3 Möglichkeiten ist die native Vorgehensweise von SpringBoot am bequemsten; man muss selbst nichts tun und kann sie direkt verwenden.

Besonders zeichnet sich Jib dadurch aus, dass Docker nicht lokal installiert sein muss und Images direkt in die angegebene Registry übertragen werden können. Außerdem ist die Nutzung sehr einfach.

Am aufwendigsten scheint das Plugin dockerfile-maven-plugin zu sein: Man muss ein Dockerfile schreiben und zusätzlich die Konfiguration ergänzen,Aber,tatsächlich ist es am einfachsten zu verwenden, denn die ersten 2 hängen von der Netzwerkumgebung ab(du weißt schon). Selbst wenn du einen Docker-Mirror konfiguriert hast, treten Fehler auf; du kannst es ausprobieren.

Themenbild zu Spring Boot, Maven und der Erstellung von Docker-Images


Kommentarbereich

Wird gesendet

Design auswählen

Das Design gilt für die gesamte Website.