इस ब्लॉग पोस्ट में, हम डॉकर का पता लगाने जा रहे हैं और एक सरल 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
अब, इस डॉकरफ़ाइल में क्या हो रहा है, इसे चरण दर चरण अनपैक करें:
यह लाइन डॉकर हब से आधिकारिक Node.js छवि (अल्पाइन लिनक्स पर संस्करण 18) खींचती है। डॉकर हब को छवियों की एक लाइब्रेरी के रूप में सोचें। इस पंक्ति का उपयोग करके, हम निर्दिष्ट करते हैं कि हम अपने निर्माण के पहले चरण के लिए Node.js को अपनी आधार छवि के रूप में उपयोग करना चाहते हैं।
यह कमांड कंटेनर के अंदर वर्किंग डायरेक्टरी को /ऐप पर सेट करता है। आप इसे कंटेनर के भीतर अपने एप्लिकेशन के लिए एक समर्पित फ़ोल्डर बनाने के रूप में सोच सकते हैं, ठीक उसी तरह जैसे आप अपने डेस्कटॉप पर फ़ाइलों को व्यवस्थित कर सकते हैं।
यहां, हम अपनी स्थानीय निर्देशिका से package.json और package-lock.json फ़ाइलों को कंटेनर की कार्यशील निर्देशिका में कॉपी करते हैं। इन फ़ाइलों में हमारे एप्लिकेशन के लिए आवश्यक निर्भरताओं के बारे में जानकारी होती है।
यह कमांड npm इंस्टॉल चलाता है, जो package.json में निर्दिष्ट सभी निर्भरताएं स्थापित करता है।
यह लाइन हमारी बाकी एप्लिकेशन फ़ाइलों को कंटेनर में कॉपी करती है। यह हमारी स्थानीय निर्देशिका से सब कुछ कंटेनर के अंदर /ऐप निर्देशिका में लाता है।
अब हम npm run build कमांड का उपयोग करके अपना एप्लिकेशन संकलित करते हैं। यह चरण आमतौर पर हमारे कोड (अक्सर इस मामले में रिएक्ट) को एक स्थिर बंडल में बदल देता है, जो उपयोगकर्ताओं को परोसने के लिए तैयार होता है। इस कमांड का आउटपुट /ऐप के भीतर एक बिल्ड डायरेक्टरी में रखा जाएगा।
इस पंक्ति में, हम एक नई आधार छवि पर स्विच करते हैं: Nginx। Nginx एक शक्तिशाली वेब सर्वर है जो स्थिर फ़ाइलों की सेवा कर सकता है, जैसे हमने अभी बनाया है। यह मल्टी-स्टेज निर्माण प्रक्रिया में हमारे दूसरे चरण की शुरुआत है।
यहां, हम पिछले चरण (इंस्टॉलर) से निर्मित एप्लिकेशन फ़ाइलों को 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
तीसरे दिन का वीडियो
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3