Artikel ini akan memperkenalkan 3 teknik untuk membangun aplikasi SpringBoot menjadi image Docker melalui Maven。
(1)Menggunakan fitur bawaan spring-boot-maven-plugin build-image.
(2)Menggunakan milik Google jib-maven-plugin。
(3)Menggunakan dockerfle-maven-plugin。
Aplikasi Spring Boot
Untuk memudahkan praktik, diperlukan sebuah proyek Spring Boot.
Alamat proyek demo:
https://github.com/davelms/me...
Lingkungan proyek:
Java 11
Maven 3.6.3
Menggunakan mvn package Dapat membangun paket jar secara normal.
Juga dapat berjalan dengan normal:
java -jar target/demo-application-0.0.1-SNAPSHOT.jar
Halaman pengujian:
http://localhost:8080/hello

Proyek demo sudah siap, selanjutnya kita mulai mempraktikkan 3 metode untuk membangun image.
I、build-image pada plugin Maven Spring Boot
Spring Boot sudah dilengkapi plugin sendiri untuk membangun image Docker. Kita tidak perlu mengubah apa pun, karena plugin tersebut sudah ada dalam spring-boot-starter-parent di pom.xml.
Anda tidak perlu menulis Dockerfile atau memikirkan hal lainnya; plugin sudah menangani semuanya, seperti persoalan keamanan, memori, dan performa yang disarankan Spring.
Cukup jalankan:
mvn spring-boot:build-image
Setelah eksekusi selesai, akan terlihat pesan keberhasilan:

Jalankan pengujian kontainer:
docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT
Perhatian:port lokal yang dipetakan di sini adalah 9090。

II、jib-maven-plugin
Jib adalah plugin Maven dan Gradle untuk membuat image Docker.
Plugin ini memiliki satu ciri yang sangat jelas:Tidak perlu menginstal Docker secara lokal,hal ini sangat memudahkan integrasi berkelanjutan, karena Jib dapat langsung melakukan push ke repositori Docker yang ditentukan.
Jib juga tidak memerlukan penulisan Dockerfile.
Penggunaannya juga sangat praktis, tanpa perlu mengubah kode, dan pom.xml pun dapat dibiarkan tanpa perubahan.
Cukup jalankan:
mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
mvn compile
adalah perintah kompilasi maven yang sudah sangat kita kenal。
com.google.cloud.tools:jib-maven-plugin:2.3.0
Menetapkan penggunaan plugin Jib
dockerBuild
merupakan sasaran eksekusi plugin Jib,dockerBuild Menetapkan agar Jib menggunakan Docker yang terpasang secara lokal.
Setelah eksekusi selesai, akan terlihat pesan keberhasilan:

Jalankan kontainer untuk pengujian:
docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT
Perhatian:port lokal yang dipetakan di sini adalah 9091。

III、dockerfile-maven-plugin
Plugin ini mengharuskan kita menulis Dockerfile, yang sudah disiapkan dalam proyek Domo.
Dockerfile perlu diletakkan di direktori akar proyek,bersama pom.xml。

Kemudian, beberapa konfigurasi perlu ditambahkan ke pom.xml untuk menentukan repositori, tag, serta yang didefinisikan dalam Dockerfile di atas JAR_FILE。

Jalankan mvn package saat itu, citra akan dibangun secara otomatis, dan setelah proses selesai, Anda akan melihat pesan pemberitahuan:

Menjalankan kontainer:
docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT
Catatan:port lokal yang dipetakan adalah 9092。

Ringkasan

Dari 3 cara ini, yang paling praktis adalah cara bawaan SpringBoot. Tidak perlu mengerjakan apa pun sendiri, langsung bisa digunakan.
Yang paling khas adalah Jib, yang tidak mengharuskan Anda memasang Docker secara lokal, dapat langsung mengirimkan hasilnya ke repositori yang ditentukan, dan juga sangat mudah digunakan.
Sepertinya yang paling merepotkan adalah plugin dockerfile-maven-plugin ini, karena perlu menulis Dockerfile dan menambahkan konfigurasi,Namun, sebenarnya ini yang paling mudah digunakan, karena 2 yang pertama berkaitan dengan lingkungan jaringan (kamu tahu maksudnya), bahkan setelah mengonfigurasi mirror Docker, kesalahan tetap akan muncul, kamu bisa mencobanya.
