TypeScript एप्लिकेशन को Docker में कंटेनरीकृत करें: संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

क्यों TypeScript एप्लिकेशन का कंटेनरीकरण आधुनिक डेवलपर के लिए ज़रूरी है

\n

एक स्थिति की कल्पना करें: आपने अपने MacBook पर एक शानदार TypeScript एप्लिकेशन लिखा, सब कुछ बिल्कुल सही चल रहा है। आप कोड को Ubuntu सर्वर पर डालते हैं — और ढेर सारी एरर मिलती हैं। परिचित लग रहा है? समस्या वातावरण के अंतर की है: Node.js के वर्जन, सिस्टम लाइब्रेरीज़, एनवायरनमेंट वेरिएबल्स। Docker इस दर्द को हमेशा के लिए खत्म कर देता है। TypeScript एप्लिकेशन का कंटेनरीकरण आपको कोड को सभी डिपेंडेंसी के साथ एक आइसोलेटेड कंटेनर में पैकेज करने देता है, जो किसी भी सर्वर, क्लाउड या सहकर्मी की लोकल मशीन पर एक जैसा चलेगा।

\n

इस लेख में, हम सीखेंगे कि Docker का उपयोग करके TypeScript एप्लिकेशन को सही तरीके से कैसे कंटेनरीकृत किया जाए। आप न केवल बुनियादी कदम सीखेंगे, बल्कि एडवांस तकनीकें भी: मल्टी-स्टेज बिल्ड, इमेज साइज़ ऑप्टिमाइज़ेशन, डिपेंडेंसी कैशिंग और एनवायरनमेंट वेरिएबल्स के साथ काम करना। चलिए शुरू करते हैं!

\n\n

Docker क्या है और TypeScript डेवलपर को इसकी आवश्यकता क्यों है

\n

Docker एक प्लेटफ़ॉर्म है जो एप्लिकेशन को कंटेनर में बनाने, डिलीवर करने और चलाने के लिए है। कंटेनर एक हल्का, स्वायत्त वातावरण है जिसमें आपके TypeScript एप्लिकेशन को चलाने के लिए सब कुछ होता है: कोड, रनटाइम (Node.js), सिस्टम टूल्स, लाइब्रेरीज़ और सेटिंग्स।

\n

TypeScript प्रोजेक्ट्स के लिए लाभ स्पष्ट हैं:

\n
    \n
  • वातावरण की पुनरुत्पादन क्षमता — अब कोई "मेरे पास चल रहा है" और "प्रोडक्शन पर क्रैश हो गया" नहीं।
  • \n
  • आइसोलेशन — हर एप्लिकेशन अपने कंटेनर में चलता है, दूसरी सेवाओं में हस्तक्षेप नहीं करता।
  • \n
  • स्केलिंग — Docker Compose या Kubernetes के ज़रिए अपने TypeScript सर्वर के 10 इंस्टेंस आसानी से चलाएं।
  • \n
  • आसान डिप्लॉयमेंट — एक इमेज को किसी भी प्लेटफ़ॉर्म पर चलाएं: AWS, Google Cloud, DigitalOcean या लोकली।
  • \n
\n\n

पूर्वापेक्षाएँ

\n

शुरू करने से पहले, सुनिश्चित करें कि आपके पास इंस्टॉल है:

\n
    \n
  • Docker — आधिकारिक वेबसाइट से डाउनलोड करें (Windows, macOS, Linux पर काम करता है)।
  • \n
  • Node.js वर्जन 18 या उससे ऊपर (TypeScript कंपाइल करने के लिए)।
  • \n
  • TypeScript — ग्लोबली या प्रोजेक्ट में लोकली इंस्टॉल हो।
  • \n
\n

उदाहरण के तौर पर, हम TypeScript पर एक साधारण Express एप्लिकेशन लेंगे। लेकिन यह तरीका सार्वभौमिक है: आप किसी भी TypeScript प्रोजेक्ट को कंटेनरीकृत कर सकते हैं — Telegram बॉट से लेकर NestJS सर्वर तक।

\n\n

प्रोजेक्ट की संरचना

\n

शुरू करने के लिए, TypeScript एप्लिकेशन की एक न्यूनतम संरचना बनाएं:

\n
my-typescript-app/\n├── src/\n│   └── index.ts\n├── package.json\n├── tsconfig.json\n└── Dockerfile
\n

फ़ाइल src/index.ts में एक सरल HTTP सर्वर होगा:

\n
import express from 'express';\nconst app = express();\nconst PORT = process.env.PORT || 3000;\n\napp.get('/', (req, res) => {\n  res.send('Hello from TypeScript + Docker!');\n});\n\napp.listen(PORT, () => {\n  console.log(`Server is running on port ${PORT}`);\n});
\n

बुनियादी सेटिंग्स के साथ tsconfig.json फ़ाइल:

\n
{\n  "compilerOptions": {\n    "target": "ES2020",\n    "module": "commonjs",\n    "outDir": "./dist",\n    "rootDir": "./src",\n    "strict": true,\n    "esModuleInterop": true\n  }\n}
\n\n

TypeScript एप्लिकेशन के लिए पहला Dockerfile लिखना

\n

सबसे आसान तरीका एक सिंगल-स्टेज बिल्ड बनाना है। लेकिन हम तुरंत सही रास्ते पर चलेंगे और मल्टी-स्टेज बिल्ड बनाएंगे। इससे फाइनल इमेज का आकार कई गुना कम हो जाएगा।

\n
# Stage 1: Build\nFROM node:18-alpine AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm install\nCOPY . .\nRUN npm run build\n\n# Stage 2: Production\nFROM node:18-alpine\nWORKDIR /app\nCOPY --from=builder /app/dist ./dist\nCOPY --from=builder /app/package*.json ./\nRUN npm install --production\nEXPOSE 3000\nCMD ["node", "dist/index.js"]
\n

आइए प्रत्येक चरण को समझते हैं:

\n
    \n
  • bu

ब्लॉग

पुस्तक अनुशंसाएँ