इस लेख में Maven के माध्यम से SpringBoot अनुप्रयोग को Docker इमेज में बनाने की 3 तकनीकें बताई जाएँगी।
(1)spring-boot-maven-plugin में अंतर्निहित का उपयोग build-image.
(2)Google का उपयोग करें jib-maven-plugin。
(3)उपयोग करें dockerfle-maven-plugin。
Spring Boot अनुप्रयोग
अभ्यास को सुविधाजनक बनाने के लिए एक Spring Boot परियोजना चाहिए।
Demo परियोजना का पता:
https://github.com/davelms/me...
परियोजना का परिवेश:
Java 11
Maven 3.6.3
उपयोग करें mvn package jar पैकेज सामान्य रूप से बनाया जा सकता है।
भी सामान्य रूप से चल सकता है:
java -jar target/demo-application-0.0.1-SNAPSHOT.jar
परीक्षण पृष्ठ:
http://localhost:8080/hello

डेमो परियोजना तैयार है, अब इमेज बनाने के 3 तरीकों का व्यावहारिक अभ्यास शुरू करते हैं।
एक、Spring Boot maven प्लगइन का build-image
Spring Boot में Docker इमेज बनाने का अपना प्लगइन पहले से शामिल है, हमें कोई बदलाव करने की आवश्यकता नहीं है, क्योंकि वह pom.xml के spring-boot-starter-parent में ही मौजूद है।
आपको Dockerfile लिखने या किसी और बात की चिंता करने की आवश्यकता नहीं है। प्लगइन सब संभालता है, जैसे Spring द्वारा सुझाए गए सुरक्षा, मेमोरी और प्रदर्शन संबंधी मुद्दे।
बस यह चलाना है:
mvn spring-boot:build-image
निष्पादन पूरा होने पर सफलता का संदेश दिखाई देगा:

कंटेनर चलाकर परीक्षण करें:
docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT
ध्यान दें:यहाँ मैप किया गया स्थानीय पोर्ट है 9090。

दो、jib-maven-plugin
Jib एक Maven और Gradle प्लगइन है, जिसका उपयोग Docker इमेज बनाने के लिए होता है।
इस प्लगइन की एक बहुत स्पष्ट विशेषता है:स्थानीय रूप से Docker इंस्टॉल करने की आवश्यकता नहीं,यह सतत एकीकरण के लिए बहुत सुविधाजनक है, Jib सीधे निर्दिष्ट Docker रिपॉज़िटरी में पुश कर सकता है।
Jib में भी Dockerfile लिखने की आवश्यकता नहीं होती।
इसका उपयोग भी बहुत सुविधाजनक है; कोड बदलने की आवश्यकता नहीं है और pom.xml को भी अपरिवर्तित रखा जा सकता है।
बस यह चलाएँ:
mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
mvn compile
वह maven संकलन कमांड है जिसे हम अच्छी तरह जानते हैं।
com.google.cloud.tools:jib-maven-plugin:2.3.0
Jib प्लगइन के उपयोग को निर्दिष्ट किया गया है
dockerBuild
Jib प्लगइन का निष्पादन लक्ष्य है,dockerBuild यह निर्दिष्ट करता है कि Jib हमारे स्थानीय रूप से स्थापित Docker का उपयोग करे।
निष्पादन पूरा होने पर सफलता का संदेश दिखाई देगा:

परीक्षण के लिए कंटेनर शुरू करें:
docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT
ध्यान दें:यहाँ मैप किया गया स्थानीय पोर्ट है 9091。

तीन、dockerfile-maven-plugin
इस प्लगइन के लिए हमें Dockerfile लिखना होगा,जो Domo प्रोजेक्ट में पहले से तैयार है।
Dockerfile को परियोजना की मूल निर्देशिका में, pom.xml के साथ रखना आवश्यक है।

फिर, रिपॉज़िटरी, tag लेबल और ऊपर Dockerfile में परिभाषित चीज़ को निर्दिष्ट करने के लिए pom.xml में कुछ कॉन्फ़िगरेशन जोड़ने होंगे JAR_FILE。

निष्पादन mvn package के समय इमेज अपने आप बन जाएगी, और निष्पादन पूरा होने पर यह सूचना दिखाई देगी:

कंटेनर चलाना:
docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT
ध्यान दें:मैप किया गया स्थानीय पोर्ट है 9092。

संक्षेप

इन 3 तरीकों में सबसे सुविधाजनक SpringBoot का मूल तरीका है;खुद कुछ करने की ज़रूरत नहीं, इसे सीधे इस्तेमाल कर सकते हैं।
सबसे विशिष्ट Jib है। इसके लिए आपको अपने स्थानीय सिस्टम पर Docker इंस्टॉल करने की ज़रूरत नहीं है, यह सीधे निर्दिष्ट रिपॉज़िटरी में पुश कर सकता है और इसका उपयोग भी बहुत आसान है।
सबसे झंझट वाला तो dockerfile-maven-plugin प्लगइन ही लगता है, Dockerfile लिखना पड़ता है और कॉन्फ़िगरेशन भी जोड़ना होता है,लेकिन,वास्तव में यही इस्तेमाल में सबसे सुविधाजनक है, क्योंकि पहले 2 नेटवर्क परिवेश से जुड़े हैं(आप समझते हैं), Docker मिरर कॉन्फ़िगर करने पर भी त्रुटि आएगी, आप आज़माकर देख सकते हैं।
