"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सीकेए फुल कोर्स डे अल्टी स्टेज डॉकर बिल्ड

सीकेए फुल कोर्स डे अल्टी स्टेज डॉकर बिल्ड

2024-11-04 को प्रकाशित
ब्राउज़ करें:947

CKA Full Course Day ulti Stage Docker Build

इस ब्लॉग पोस्ट में, हम डॉकर का पता लगाने जा रहे हैं और एक सरल Nginx एप्लिकेशन के साथ एक मल्टी-स्टेज डॉकर बिल्ड बना रहे हैं। यदि आप अभी डॉकर के साथ शुरुआत कर रहे हैं, तो चिंता न करें, मैं चरण दर चरण सब कुछ बताऊंगा ताकि आप इसका अनुसरण कर सकें!

डॉकरफ़ाइल

यहां वह डॉकरफाइल है जिसके साथ हम काम करेंगे:

FROM node:18-alpine AS installer

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

FROM nginx:latest AS deployer

COPY --from=installer /app/build /usr/share/nginx/html

डॉकरफ़ाइल को अनपैक करना

अब, इस डॉकरफ़ाइल में क्या हो रहा है, इसे चरण दर चरण अनपैक करें:

1. नोड से: 18-अल्पाइन एएस इंस्टॉलर

यह लाइन डॉकर हब से आधिकारिक Node.js छवि (अल्पाइन लिनक्स पर संस्करण 18) खींचती है। डॉकर हब को छवियों की एक लाइब्रेरी के रूप में सोचें। इस पंक्ति का उपयोग करके, हम निर्दिष्ट करते हैं कि हम अपने निर्माण के पहले चरण के लिए Node.js को अपनी आधार छवि के रूप में उपयोग करना चाहते हैं।

2. WORKDIR /ऐप

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

3. कॉपी पैकेज*.json ./

यहां, हम अपनी स्थानीय निर्देशिका से package.json और package-lock.json फ़ाइलों को कंटेनर की कार्यशील निर्देशिका में कॉपी करते हैं। इन फ़ाइलों में हमारे एप्लिकेशन के लिए आवश्यक निर्भरताओं के बारे में जानकारी होती है।

4. रन एनपीएम इंस्टॉल

यह कमांड npm इंस्टॉल चलाता है, जो package.json में निर्दिष्ट सभी निर्भरताएं स्थापित करता है।

5. कॉपी करें। .

यह लाइन हमारी बाकी एप्लिकेशन फ़ाइलों को कंटेनर में कॉपी करती है। यह हमारी स्थानीय निर्देशिका से सब कुछ कंटेनर के अंदर /ऐप निर्देशिका में लाता है।

6. रन एनपीएम रन बिल्ड

अब हम npm run build कमांड का उपयोग करके अपना एप्लिकेशन संकलित करते हैं। यह चरण आमतौर पर हमारे कोड (अक्सर इस मामले में रिएक्ट) को एक स्थिर बंडल में बदल देता है, जो उपयोगकर्ताओं को परोसने के लिए तैयार होता है। इस कमांड का आउटपुट /ऐप के भीतर एक बिल्ड डायरेक्टरी में रखा जाएगा।

7. nginx से: नवीनतम AS परिनियोजनकर्ता

इस पंक्ति में, हम एक नई आधार छवि पर स्विच करते हैं: Nginx। Nginx एक शक्तिशाली वेब सर्वर है जो स्थिर फ़ाइलों की सेवा कर सकता है, जैसे हमने अभी बनाया है। यह मल्टी-स्टेज निर्माण प्रक्रिया में हमारे दूसरे चरण की शुरुआत है।

8. COPY --from=installer /app/build /usr/share/nginx/html

यहां, हम पिछले चरण (इंस्टॉलर) से निर्मित एप्लिकेशन फ़ाइलों को Nginx सर्विंग निर्देशिका में कॉपी करते हैं। --from=इंस्टॉलर ध्वज डॉकर को हमारे द्वारा अभी परिभाषित इंस्टॉलर चरण से फ़ाइलें प्राप्त करने के लिए कहता है।

आपका डॉकर कंटेनर चलाना

एक बार जब आपकी डॉकरफ़ाइल सेट हो जाती है, तो आप निम्नलिखित कमांड के साथ अपना डॉकर कंटेनर बना और चला सकते हैं:

docker build -t your-app-name .
docker run -dp 3000:80 your-app-name

अपने ऐप-नाम को अपनी पसंद के नाम से बदलना सुनिश्चित करें। -डीपी ध्वज आपके कंटेनर को अलग कर देगा और आपके होस्ट मशीन पर पोर्ट 3000 को कंटेनर में पोर्ट 80 पर मैप कर देगा, जिससे आप http://localhost:3000 पर अपने ऐप तक पहुंच सकेंगे।

निष्कर्ष

आखिर तुमने इसे हासिल कर ही लिया है! आपने अभी-अभी एक मल्टी-स्टेज डॉकर बिल्ड बनाया है जो Nginx का उपयोग करके आपके एप्लिकेशन को विकास से उत्पादन तक ले जाता है। यदि प्रक्रिया के बारे में आपके कोई प्रश्न या विचार हैं, तो बेझिझक नीचे एक टिप्पणी छोड़ें!

गॉचचास: ध्यान रखने योग्य बातें

इस सेटअप के साथ काम करते समय एक सामान्य गलती सही पोर्ट नंबरों को मैप करना भूल जाना है। Nginx आम तौर पर कंटेनर के अंदर पोर्ट 80 पर सुनता है, लेकिन यदि आप अपने स्थानीय मशीन पर ऐप तक पहुंचने का प्रयास कर रहे हैं, तो आपको कंटेनर से सही पोर्ट को अपनी मशीन पर अग्रेषित करने की आवश्यकता होगी। उदाहरण के लिए, यदि आप लोकलहोस्ट:3000 पर ऐप एक्सेस करना चाहते हैं, तो आपको अपनी मशीन पर पोर्ट 3000 को कंटेनर में पोर्ट 80 पर मैप करने के लिए -p 3000:80 ध्वज के साथ कंटेनर को चलाने की आवश्यकता होगी।

इस चरण को छोड़ दें, और आप स्वयं आश्चर्यचकित हो जाएंगे कि सब कुछ ठीक से क्यों बनाया गया है, लेकिन आप अपने ब्राउज़र में ऐप तक नहीं पहुंच सकते!


टैग और उल्लेख

@piyushsachdeva
तीसरे दिन का वीडियो

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/lloydrivers/cka-full-course-2024-day-340-multi-stage-docker-build-2ld3?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 से संपर्क करें इसे हटाने के लिए .com
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3