Docker और Swift: iOS और macOS के लिए एप्लिकेशन कंटेनरीकरण

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

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

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

Docker और Swift का परिचय: यह क्यों महत्वपूर्ण है?



आधुनिक सॉफ्टवेयर डेवलपमेंट में, एप्लिकेशन की पुनरुत्पादन क्षमता, स्केलेबिलिटी और सरल तैनाती सुनिश्चित करने के लिए कंटेनरीकरण एक डी-फैक्टो मानक बन गया है। यदि आप iOS या macOS के लिए Swift में डेवलप कर रहे हैं, तो आप शायद Xcode और Package Manager के इकोसिस्टम के आदी हैं। हालांकि, जब सर्वर-साइड (Swift on Server) या बिल्ड और टेस्टिंग के लिए अलग-थलग वातावरण बनाने की बात आती है, तो Docker एक अपरिहार्य उपकरण बन जाता है।



इस लेख में, हम समझेंगे कि Docker का उपयोग करके Swift एप्लिकेशन को कैसे कंटेनरीकृत किया जाए। आप सीखेंगे कि Swift के लिए Dockerfile कैसे बनाएं, सर्वर फ्रेमवर्क Vapor के लिए वातावरण कैसे सेट करें, और बिल्ड प्रक्रिया को कैसे अनुकूलित करें। यह सामग्री बैकएंड सीखने वाले iOS डेवलपर्स और Swift के साथ काम करने वाले DevOps इंजीनियरों दोनों के लिए उपयोगी होगी।



Swift डेवलपर के लिए Docker की मूल बातें



Docker आपको अपने एप्लिकेशन को उसकी सभी निर्भरताओं के साथ एक हल्के कंटेनर में पैकेज करने की अनुमति देता है। Swift के लिए यह विशेष रूप से प्रासंगिक है, क्योंकि कंपाइलर और लाइब्रेरी OS के संस्करण के आधार पर भिन्न हो सकते हैं। मैन्युअल रूप से सर्वर सेट करने के बजाय, आप बस कंटेनर चलाते हैं।



Docker और Swift SDK की स्थापना

सबसे पहले सुनिश्चित करें कि आपके पास Docker स्थापित है। फिर आपको Swift इमेज की आवश्यकता होगी। Apple का आधिकारिक इमेज Docker Hub पर उपलब्ध है:

docker pull swift:5.9

इस इमेज में Swift कंपाइलर, Package Manager और बुनियादी उपयोगिताएँ शामिल हैं। आप इसका उपयोग एप्लिकेशन बनाने और चलाने दोनों के लिए कर सकते हैं।



एक सरल Swift एप्लिकेशन बनाना

आइए एक न्यूनतम कंसोल एप्लिकेशन बनाएं:

// main.swiftprint("Hello, Docker with Swift!")

प्रोजेक्ट को इनिशियलाइज़ करें:

mkdir MySwiftApp && cd MySwiftAppswift package init --type executable


Swift के लिए Dockerfile लिखना



अब प्रोजेक्ट की रूट में एक Dockerfile बनाएं। अंतिम इमेज को न्यूनतम रखने के लिए मल्टी-स्टेज बिल्ड (multi-stage build) का उपयोग करना महत्वपूर्ण है।



# पहला चरण: बिल्डFROM swift:5.9 AS buildWORKDIR /appCOPY Package.swift Package.resolved ./RUN swift package resolveCOPY . .RUN swift build -c release --static-swift-stdlib

# दूसरा चरण: रनFROM ubuntu:22.04WORKDIR /appCOPY --from=build /app/.build/release/MySwiftApp .CMD ["./MySwiftApp"]


व्याख्या:

  • --static-swift-stdlib — इमेज में libswift.so को शामिल करने से बचने के लिए Swift मानक लाइब्रेरी का स्थैतिक लिंकेज।
  • Package.swift को अलग से कॉपी करना — Docker द्वारा निर्भरताओं को कैश करना।
  • Ubuntu 22.04 — रनटाइम के लिए हल्का आधार।


बिल्ड और रन करें:

docker build -t my-swift-app .docker run --rm my-swift-app


Vapor एप्लिकेशन का कंटेनरीकरण



Vapor फ्रेमवर्क सर्वर-साइड Swift के लिए सबसे लोकप्रिय विकल्प है। आइए एक विशिष्ट Vapor प्रोजेक्ट के लिए Dockerfile देखें।



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

मान लें कि आपके पास vapor new MyVaporApp के माध्यम से बनाया गया एक प्रोजेक्ट है। Dockerfile अधिक जटिल होगा, क्योंकि नेटवर्क और डेटाबेस के साथ काम करने पर विचार करना होगा।



# बिल्ड चरणFROM swift:5.9 AS buildRUN apt-get update && apt-get install -y libsqlite3-devWORKDIR /appCOPY Package.swift Package.resolved ./RUN swift package resolveCOPY . .RUN swift build -c release

# रन चरणFROM swift:5.9-slimWORKDIR /appCOPY --from=build /app/.build/release/MyVaporApp .COPY --from=build /app/Public ./PublicCOPY --from=build /app/Resources ./ResourcesEXPOSE 8080CMD ["./MyVaporApp", "serve", "--hostname", "0.0.0.0", "--port", "8080"]


महत्वपूर्ण बिंदु:

  • libsqlite3-dev —

ब्लॉग

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