जानें कि अपने गो एप्लिकेशन को कुशलतापूर्वक पैकेज और तैनात करने के लिए डॉकर का उपयोग कैसे करें, जिससे उन्हें पोर्टेबल और प्रबंधित करना आसान हो जाए।

अपनी सादगी और उपयोग में आसानी के कारण डॉकर सबसे लोकप्रिय कंटेनरीकरण तकनीक है। डॉकर सॉफ्टवेयर विकास और वितरण में पोर्टेबिलिटी मुद्दों के तनाव से राहत देता है। आप अपने डॉकर कंटेनरों को अधिकांश क्लाउड सेवा प्रदाताओं पर तैनात कर सकते हैं।

डॉकर के साथ अपने गो ऐप्स को कंटेनरीकृत करने से आपको विभिन्न वातावरणों में सुसंगत और विश्वसनीय तैनाती सुनिश्चित करने में मदद मिल सकती है। आप अपने गो ऐप्स को विकास, स्टेजिंग और उत्पादन जैसे विभिन्न वातावरणों में तैनात कर सकते हैं। डॉकर कंटेनर हल्के होते हैं और पारंपरिक वर्चुअल मशीनों की तुलना में कम जगह लेते हैं। इससे आप होस्टिंग लागत पर पैसा बचा सकते हैं, और यह आपकी तैनाती को तेज़ भी कर सकता है।

गो में एक सरल वेब सर्वर स्थापित करना

गो मानक लाइब्रेरी में वे पैकेज शामिल हैं जिनकी आपको एक साधारण वेब सर्वर स्थापित करने के लिए आवश्यकता होगी।

सबसे पहले, आयात करें एचटीटीपी, लकड़ी का लट्ठा, और json संकुल. आप उपयोग करेंगे जाओ का http पैकेज

सर्वर स्थापित करने के लिए और पाना समापन बिंदु का अनुरोध करें. लकड़ी का लट्ठा आपके कंसोल पर संभावित त्रुटियों को लॉग करने के लिए पैकेज। किसी संरचना को JSON में एन्कोड करने के लिए json पैकेज एपीआई समापन बिंदु के लिए।

आयात (
"एन्कोडिंग/जेसन"
"लकड़ी का लट्ठा"
"नेट/http"
)

आप अनुरोध की वैधता के आधार पर प्रतिक्रिया के रूप में क्लाइंट को JSON के रूप में एक स्ट्रक्चर इंस्टेंस को एन्कोड कर सकते हैं:

प्रकार संदेश struct {
जवाब डोरी`json:"प्रतिक्रिया"`
विवरण डोरी`json:"विवरण"`
}

यदि एंडपॉइंट के लिए अनुरोध है तो हैंडलर फ़ंक्शन क्लाइंट को एक सफल संदेश लौटाएगा पाना अनुरोध।

// dockerTestEndpoint डॉकर कनेक्टिविटी के परीक्षण के लिए एपीआई एंडपॉइंट को संभालता है
समारोहdockerTestEndpoint(लेखक http. रिस्पॉन्सराइटर, अनुरोध *http. अनुरोध) {

// JSON सामग्री को इंगित करने के लिए प्रतिक्रिया शीर्षलेख सेट करें
लेखक. हेडर().सेट("सामग्री प्रकार,""एप्लिकेशन/जेएसओएन")

// यदि अनुरोध विधि GET है
अगर अनुरोध। विधि == "पाना" {

// प्रतिक्रिया स्थिति कोड को 200 ओके पर सेट करें
लेखक. राइटहेडर (http. स्थिति ठीक है)

// सफल प्रतिक्रिया के लिए एक संदेश संरचना बनाएं
संदेश := संदेश{
जवाब: "सफल",
विवरण: "आपने एपीआई एंडपॉइंट को सफलतापूर्वक हिट कर लिया है" +
"आपके डॉकर कंटेनर से",
}
// संदेश को JSON के रूप में एन्कोड करें और इसे प्रतिक्रिया के रूप में भेजें
त्रुटि := json. न्यूएनकोडर (लेखक).एनकोड(&संदेश)
अगर ग़लती != शून्य {
वापस करना
}
} अन्य {

// यदि अनुरोध विधि प्राप्त नहीं है
// प्रतिक्रिया स्थिति कोड को 400 खराब अनुरोध पर सेट करें
लेखक. राइटहेडर (http. स्टेटसबैडरिक्वेस्ट)

// खराब अनुरोध प्रतिक्रिया के लिए एक संदेश संरचना बनाएं
संदेश := संदेश{
जवाब: "खराब अनुरोध",
विवरण: "आपने अपने से एपीआई एंडपॉइंट को सफलतापूर्वक हिट कर लिया है" +
"डॉकर कंटेनर, लेकिन आपने एक ग़लत अनुरोध किया",
}

// संदेश को JSON के रूप में एन्कोड करें और इसे प्रतिक्रिया के रूप में भेजें
त्रुटि := json. न्यूएनकोडर (लेखक).एनकोड(&संदेश)
अगर ग़लती != शून्य {
वापस करना
}
}
}

आप मुख्य फ़ंक्शन में हैंडलर फ़ंक्शन को रूट के साथ सेट करते हैं /api/docker/go. dockerTestEndpoint हैंडलर फ़ंक्शन सत्यापित करता है कि हैंडलर के लिए अनुरोध एक GET अनुरोध है। यदि यह एक GET अनुरोध है, तो यह एक इंस्टेंटियेटेड को एन्कोड करता है संदेश अनुरोध की स्थिति के आधार पर क्लाइंट को संरचना उदाहरण।

यहां बताया गया है कि आप रूट पर हैंडलर फ़ंक्शन को कैसे माउंट कर सकते हैं और पोर्ट पर चलने के लिए सर्वर को सेटअप कर सकते हैं 8080:

समारोहमुख्य() {
// हैंडलर फ़ंक्शन 'dockerTestEndpoint' पंजीकृत करें
// "/api/docker/go" URL के अनुरोधों को संभालने के लिए।
एचटीटीपी। हैंडलफंक("/api/docker/go", dockerTestEndpoint)

// HTTP सर्वर प्रारंभ करें और पोर्ट 8080 पर आने वाले अनुरोधों को सुनें।
गलती := http. सुनो और परोसो(":8080", शून्य)
अगर ग़लती != शून्य {
लकड़ी का लट्ठा। Fataln("सर्वर में कोई त्रुटि है:", ग़लती)
}
}

मुख्य फ़ंक्शन सर्वर का प्रवेश बिंदु है, जो पोर्ट पर सुनता है 8080. हैंडलफनक विधि हैंडलर फ़ंक्शन पर मार्गों को माउंट करती है। सुनो और परोसो विधि निर्दिष्ट स्थानीय होस्ट पोर्ट पर सर्वर प्रारंभ करती है 8080.

डॉकर के साथ अपने गो ऐप्स को कंटेनरीकृत करना शुरू करना

डॉकर को स्थापित करने और स्थापित करने के बाद, आपको अपने गो ऐप के लिए डॉकर छवि बनाने और बनाने के लिए डॉकरफाइल नामक एक डॉकर फ़ाइल की आवश्यकता होगी। आप आधार छवि के लिए कमांड निर्दिष्ट करेंगे और फ़ाइलों की प्रतिलिपि बनाने, कार्यशील निर्देशिका जोड़ने और डॉकरफ़ाइल में ऐप चलाने के लिए कमांड निर्दिष्ट करेंगे।

Dockerfile बनाने के लिए इस कमांड को अपने कार्यक्षेत्र के टर्मिनल में चलाएँ।

डॉकरफ़ाइल स्पर्श करें

आप Dockerfile में अपनी Docker छवि बनाने के लिए आदेश निर्दिष्ट करेंगे।

यदि ऐसी कोई फ़ाइल है जिसे आप अपनी डॉकर छवि से अलग करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं .dockerignore फ़ाइल। .dockerignore फ़ाइलें बिल्कुल वैसे ही काम करती हैं .gitignore फ़ाइलें.

स्पर्श करें .dockerignore

इसके बाद, आप अपने ऐप्स को कंटेनरीकृत करने के लिए अपने डॉकरफ़ाइल में बिल्ड कमांड निर्दिष्ट करेंगे।

Dockerfile में कमांड्स को परिभाषित करना

Dockerfiles आपके प्रोजेक्ट के विनिर्देशों के आधार पर अनुकूलन योग्य हैं। आप एप्लिकेशन के निर्माण के लिए आधार छवि बनाने के लिए कमांड को परिभाषित करेंगे।

यहां Dockerfile की सामग्री का एक उदाहरण दिया गया है जो उपरोक्त वेब सर्वर बनाता है:

# गोलांग आधार छवि का उपयोग करें
से गोलांग: नवीनतम

# कंटेनर के अंदर कार्यशील निर्देशिका सेट करें
वर्कडिर /app

# स्थानीय निर्देशिका की सभी फ़ाइलों को कंटेनर में कार्यशील निर्देशिका में कॉपी करता है
कॉपी. .

# गो मॉड्यूल निर्भरताएँ डाउनलोड करें
दौड़ना जाओ मॉड डाउनलोड करें

# गो एप्लिकेशन बनाएं
दौड़ना गो बिल्ड -ओ ऐप

# एप्लिकेशन के लिए प्रवेश बिंदु सेट करें
प्रवेश बिंदु ["।/अनुप्रयोग"]

Dockerfile का उपयोग करता है गोलांग: नवीनतम आधार छवि, कार्यशील निर्देशिका को सेट करने के बाद ऐप बनाने के लिए /app.

Dockerfile फ़ाइलों को कॉपी करता है कॉपी के साथ निर्भरता को कमांड और डाउनलोड करता है दौड़ना आज्ञा।

फ़ाइल बिल्ड और रन ऑपरेशन को निर्दिष्ट करती है दौड़ना कमांड, फिर कंटेनर के प्रारंभ होने पर कमांड को चलाने के लिए सेट करता है अध्यक्ष एवं प्रबंध निदेशक आज्ञा।

Dockerfile को उसी निर्देशिका में सहेजें जिसमें आप हैं जाओ.मॉड और मुख्य.जाओ फ़ाइलें; फिर इस Dockerfile से Docker छवि बनाने के लिए यह कमांड चलाएँ:

डॉकर बिल्ड -टी गोलांग ट्यूटोरियल।

उपरोक्त कमांड टैग के साथ एक डॉकर छवि बनाएगा गोलांगट्यूटोरियल. आप इस कमांड से एक कंटेनर चला सकते हैं:

डॉकर रन -पी 8080:8080 गोलांगट्यूटोरियल

कमांड कंटेनर से पोर्ट 8080 को होस्ट मशीन के लोकलहोस्ट पर पोर्ट 8080 पर मैप करता है। आप होस्ट मशीन से डॉकर कंटेनर में चल रहे सर्वर के लिए अनुरोध कर सकते हैं।

यहाँ से परिणाम है सर्वर पर CURL अनुरोध भेजना, इस बार डॉकर पर चल रहा है:

आप कंटेनर ऑर्केस्ट्रेशन के लिए डॉकर कंपोज़ का उपयोग कर सकते हैं

डॉकर कंपोज़ एक उपकरण है जिसका उपयोग आप डॉकर कंटेनरों को व्यवस्थित करने (कई के साथ काम करने) के लिए कर सकते हैं। डॉकर कंपोज़ आपको एकल YAML फ़ाइल में मल्टी-कंटेनर एप्लिकेशन को परिभाषित करने की अनुमति देता है। आप एक ही कमांड से पूरे एप्लिकेशन को चला और प्रबंधित कर सकते हैं।

आप जटिल कंटेनरीकृत अनुप्रयोगों को तैनात करने और प्रबंधित करने के लिए डॉकर कंपोज़ का उपयोग कर सकते हैं। डॉकर कंपोज़ स्वचालित और सुसंगत तैनाती के साथ प्रबंधन को सरल बनाता है।