Bu yazıda, Maven aracılığıyla SpringBoot uygulamalarını Docker imajlarına dönüştürmek için 3 teknik tanıtılacak.
(1)spring-boot-maven-plugin içinde yerleşik olarak bulunan build-image.
(2)Google'ın şu aracını kullanma jib-maven-plugin。
(3)Kullanım dockerfle-maven-plugin。
Spring Boot uygulaması
Uygulamayı kolaylaştırmak için bir Spring Boot projesi gerekiyor.
Demo projesinin adresi:
https://github.com/davelms/me...
Proje ortamı:
Java 11
Maven 3.6.3
Kullanım mvn package jar paketi sorunsuz biçimde oluşturulabilir.
normal şekilde de çalışabilir:
java -jar target/demo-application-0.0.1-SNAPSHOT.jar
Test sayfası:
http://localhost:8080/hello

Demo projesi hazır; şimdi imaj oluşturmanın 3 yöntemini uygulamaya başlayalım.
Bir、Spring Boot maven eklentisinin build-image işlevi
Spring Boot, Docker imajları oluşturmak için kendi eklentisini hazır sunar; herhangi bir değişiklik yapmamıza gerek yoktur, çünkü eklenti pom.xml içindeki spring-boot-starter-parent'ta zaten bulunur.
Dockerfile yazmanıza veya başka şeylerle uğraşmanıza gerek yok; eklenti, Spring'in önerdiği güvenlik, bellek ve performans konuları gibi işleri sizin için halleder.
Yalnızca şu komutu çalıştırmanız yeterlidir:
mvn spring-boot:build-image
İşlem tamamlandığında başarı bildirimi görünecektir:

Konteyneri çalıştırarak test etme:
docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT
Dikkat: Burada eşlenen yerel bağlantı noktası 9090。

II、jib-maven-plugin
Jib,Docker imajları oluşturmak için kullanılan bir Maven ve Gradle eklentisidir。
Bu eklentinin çok belirgin bir özelliği var:Docker'ın yerel olarak kurulması gerekmez,bu, sürekli entegrasyon için çok kullanışlıdır; Jib doğrudan belirtilen Docker deposuna gönderebilir.
Jib de Dockerfile yazmayı gerektirmez.
Kullanımı da son derece kolaydır; kodu değiştirmeniz gerekmez, pom.xml dosyasını değiştirmeden de kullanabilirsiniz.
Yalnızca şunu çalıştırmak yeterlidir:
mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
mvn compile
çok iyi bildiğimiz maven derleme komutudur.
com.google.cloud.tools:jib-maven-plugin:2.3.0
Jib eklentisinin kullanılacağını belirtir
dockerBuild
Jib eklentisinin yürütme hedefidir,dockerBuild Jib’in yerel olarak kurduğumuz Docker’ı kullanacağını belirtir.
İşlem tamamlandığında başarı bildirimi görünecektir:

Test için konteyneri başlatın:
docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT
Dikkat: Burada eşlenen yerel bağlantı noktası 9091。

III、dockerfile-maven-plugin
Bu eklenti için bir Dockerfile yazmamız gerekiyor; Domo projesinde zaten hazırlanmış.
Dockerfile, projenin kök dizininde, pom.xml ile aynı yerde bulunmalıdır.

Ardından, depoyu, tag etiketini ve yukarıdaki Dockerfile’da tanımlanan JAR_FILE。

Yürütme mvn package sırasında imaj otomatik olarak oluşturulur,işlem tamamlandığında şu bilgilendirme mesajını görürsünüz:

Konteyneri çalıştırma:
docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT
Dikkat: Eşlenen yerel bağlantı noktası 9092。

Kısa özet

Bu 3 seçenek arasında en kullanışlısı SpringBoot'un yerleşik yöntemi; kendiniz hiçbir şey yapmadan doğrudan kullanabilirsiniz.
En ayırt edici olanı Jib'dir; bilgisayarınıza Docker kurmanızı gerektirmez, doğrudan belirtilen imaj deposuna gönderebilir ve kullanımı da oldukça kolaydır.
En zahmetli görünen eklenti dockerfile-maven-plugin; hem Dockerfile yazmak hem de yapılandırma eklemek gerekiyor,Ancak,aslında kullanımı en kolay olan budur; çünkü ilk 2 seçenek ağ ortamına bağlıdır (anlarsınız ya), Docker imajını yapılandırsanız bile hata verirler, deneyebilirsiniz。
