Docker कंटेनर के ज़रिए VS Code में R कोडिंग
क्या कभी आपने अपना R कोड किसी सहकर्मी के साथ साझा किया है और फिर “मेरे कंप्यूटर पर तो चल रहा था” जैसी समस्याओं को ठीक करने में घंटों बिता दिए हैं? Docker कंटेनर कोड के लिए शिपिंग कंटेनर की तरह हैं—ये आपके R एनवायरनमेंट, लाइब्रेरी और डिपेंडेंसी को एक सीलबंद बॉक्स में पैक कर देते हैं, जो हर जगह एक जैसा काम करता है। इसके अलावा, आपको Docker Hub पर हज़ारों तैयार इमेज तक पहुँच मिलती है, जहाँ सॉफ़्टवेयर डेवलपर उपयोग के लिए तैयार एनवायरनमेंट प्रकाशित करते हैं, जिससे मैन्युअल सॉफ़्टवेयर इंस्टॉलेशन की परेशानी नहीं उठानी पड़ती। यह ट्यूटोरियल आपको दिखाता है कि VS Code और Docker Desktop का उपयोग करके R को एक आइसोलेटेड, रिप्रोड्यूसिबल एनवायरनमेंट में कैसे चलाया जाए।
मुख्य अवधारणाएँ
- Docker Desktop - वह ऐप्लिकेशन जो आपके कंप्यूटर पर कंटेनर चलाता है और आइसोलेटेड एनवायरनमेंट को मैनेज करता है
- Dev Container - VS Code की एक सुविधा जो आपको पूरे IDE सपोर्ट के साथ Docker कंटेनर के अंदर कोड करने देती है
- कंटेनर आइसोलेशन - आपका कोड एक अलग Linux एनवायरनमेंट में चलता है जो केवल आपका प्रोजेक्ट फ़ोल्डर देखता है, आपका पूरा कंप्यूटर नहीं
- Rocker - खास तौर पर R डेवलपमेंट के लिए बनाई गई तैयार Docker इमेज
आपको क्या चाहिए
- पूरा किया हुआ R Coding in VS Code
- पूरा किया हुआ GitHub Desktop Basics
- 20-25 मिनट
चरण 1: Docker Desktop इंस्टॉल करें
- Docker Desktop डाउनलोड पेज पर जाएँ
- Download for Windows पर क्लिक करें (या अपने सिस्टम के अनुसार Mac/Linux)
- इंस्टॉलर चलाएँ और इंस्टॉलेशन विज़ार्ड के निर्देशों का पालन करें
- जब पूछा जाए, तो WSL 2 (Windows उपयोगकर्ताओं के लिए) सक्षम करें या डिफ़ॉल्ट सेटिंग्स स्वीकार करें
- इंस्टॉलेशन के बाद, Docker Desktop लॉन्च करें
- Docker इंजन शुरू होने का इंतज़ार करें (आपको नीचे बाईं ओर एक हरा स्टेटस इंडिकेटर दिखेगा)
चरण 2: Dev Containers एक्सटेंशन इंस्टॉल करें
- VS Code खोलें
- बाईं साइडबार में Extensions आइकन पर क्लिक करें (या View > Extensions पर क्लिक करें)
- सर्च बॉक्स में
dev containersटाइप करें - Microsoft द्वारा बनाया गया Dev Containers ढूँढें
- Install पर क्लिक करें
चरण 3: GitHub Desktop से Vibe प्रोजेक्ट क्लोन करें
- GitHub Desktop खोलें
- File > Clone repository पर क्लिक करें
- URL टैब पर क्लिक करें
- Repository URL फ़ील्ड में यह पेस्ट करें:
https://github.com/gexijin/vibe - प्रोजेक्ट सेव करने के लिए जगह चुनें (Local Path फ़ील्ड)
- Clone पर क्लिक करें
- GitHub Desktop प्रोजेक्ट को आपके चुने हुए स्थान पर डाउनलोड कर देगा
चरण 4: प्रोजेक्ट को VS Code में खोलें
- VS Code में, File > Open Folder पर क्लिक करें
- अभी-अभी क्लोन किए गए
vibeफ़ोल्डर पर जाएँ - Select Folder पर क्लिक करें
- आपको Explorer साइडबार में प्रोजेक्ट फ़ाइलें दिखेंगी
चरण 5: कंटेनर में फिर से खोलें
- नीचे दाईं ओर एक सूचना देखें: Folder contains a Dev Container configuration file
- Reopen in Container पर क्लिक करें
- अगर आपको सूचना नहीं दिखती, तो नीचे बाईं ओर हरे आइकन पर क्लिक करें
- मेनू से Reopen in Container चुनें
- VS Code कंटेनर बनाएगा (पहली बार में इसमें 5-10 मिनट लगते हैं)
- आपको बिल्ड के चरण दिखाती एक प्रगति सूचना दिखेगी
- पूरा होने पर, हरा आइकन Dev Container: R in Docker दिखाएगा
नोट: कंटेनर में स्वचालित रूप से R एक्सटेंशन और languageserver पैकेज शामिल होते हैं। Dockerfile और devcontainer.json यह काम आपके लिए संभालते हैं।
चरण 6: कंटेनर एनवायरनमेंट को समझें
अब आप एक Linux कंटेनर के अंदर कोड कर रहे हैं। आइए समझें कि इसका क्या मतलब है।
- कंटेनर के अंदर टर्मिनल खोलने के लिए Terminal > New Terminal पर क्लिक करें
- अपना वर्तमान स्थान जाँचें:
pwd
आपको /workspaces/vibe दिखेगा - यह कंटेनर के अंदर आपका प्रोजेक्ट फ़ोल्डर है।
- फ़ाइलों की सूची देखें:
ls
आपको प्रोजेक्ट की वही फ़ाइलें दिखेंगी: R/, .devcontainer/, README.md, आदि।
- एक डायरेक्टरी ऊपर जाने की कोशिश करें:
cd ..
ls
आपको केवल vibe/ दिखेगा - कंटेनर आइसोलेटेड है। आप अपने कंप्यूटर के अन्य फ़ोल्डर, Desktop या Documents तक नहीं पहुँच सकते। यह आइसोलेशन सुनिश्चित करता है कि आपका R एनवायरनमेंट साफ़ और रिप्रोड्यूसिबल रहे।
- प्रोजेक्ट फ़ोल्डर में वापस जाएँ:
cd vibe
चरण 7: R कोड को लाइन-दर-लाइन चलाएँ
कंटेनर में सामान्य पैकेजों के साथ R पहले से इंस्टॉल है। आइए एक सरल डेटा विश्लेषण स्क्रिप्ट चलाएँ।
- VS Code Explorer में,
R/iris_analysis.Rपर जाएँ - फ़ाइल खोलने के लिए क्लिक करें
- आपको iris डेटासेट का विश्लेषण करने वाला R कोड दिखेगा
- पहली लाइन चुनें:
data(iris) - इसे चलाने के लिए
Ctrl+Enter(Windows/Linux) याCmd+Enter(Mac) दबाएँ - अगर आपके पास कोई R टर्मिनल खुला नहीं है, तो पहली बार में एक बन जाता है, दूसरी बार में कोड चलता है
- हर लाइन को एक-एक करके चलाना जारी रखें
- जब आप
head(iris)चलाएँगे, तो टर्मिनल में पहली 6 पंक्तियाँ दिखेंगी - जब आप
summary(iris)चलाएँगे, तो सांख्यिकीय सारांश दिखेंगे - जब आप
hist()कमांड चलाएँगे, तो हिस्टोग्राम प्लॉट अलग विंडो में खुलेंगे - आप कई लाइनें चुनकर उन्हें
Ctrl+EnterयाCmd+Enterसे एक साथ भी चला सकते हैं
चरण 8: ऐप चलाएँ
इस प्रोजेक्ट में एक डेमो Shiny ऐप शामिल है जो एक इंटरैक्टिव हिस्टोग्राम बनाता है।
- VS Code Explorer में,
R/app.Rपर जाएँ - फ़ाइल खोलने के लिए क्लिक करें
- आपको एक Shiny वेब एप्लिकेशन का कोड दिखेगा
- एडिटर विंडो के ऊपरी दाईं ओर एक ▶ बटन देखें
- इसके बगल में डropdown एरो पर क्लिक करें और Run Shiny App चुनें
- ऐप शुरू हो जाएगा और VS Code अपने आप पोर्ट 3838 को फॉरवर्ड कर देगा
- एक सूचना दिखेगी: Open in Browser
- Open in Browser पर क्लिक करें
- Shiny ऐप आपके वेब ब्राउज़र में खुल जाएगा
- हिस्टोग्राम बिन्स बदलने के लिए स्लाइडर को हिलाएँ - चार्ट रीयल-टाइम में अपडेट होता है
चरण 9: एक सरल बदलाव करें
आइए ऐप में बदलाव करके देखें कि डेवलपमेंट कैसे काम करता है।
- ऐप को चलते रहने दें
- VS Code में,
R/app.Rको एडिट करें - लाइन 16 ढूँढें:
titlePanel("Old Faithful Geyser Data") - इसे बदलकर यह करें:
titlePanel("My First R Docker App")
- फ़ाइल सेव करें (File > Save)
- Shiny एक्सटेंशन अपने आप ऐप को फिर से लोड करेगा
- अपना ब्राउज़र रिफ्रेश करें (या यह अपने आप रिफ्रेश हो सकता है)
- शीर्षक अब आपका कस्टम टेक्स्ट दिखाएगा
चरण 10: Dockerfile को समझें (वैकल्पिक)
- VS Code Explorer में,
.devcontainer/Dockerfileपर जाएँ - फ़ाइल खोलने के लिए क्लिक करें
- आपको पूरा कॉन्फ़िगरेशन दिखेगा:
# choose a Dockerhub base image
FROM rocker/shiny-verse:latest
# 1. System deps commonly needed by R packages
RUN apt-get update && apt-get install -y \
libcurl4-openssl-dev libssl-dev libxml2-dev git curl && \
rm -rf /var/lib/apt/lists/*
# 2. R packages for VS Code integration: language server + debugger
RUN R -q -e 'install.packages(c("rstudioapi", "languageserver"), repos="https://cloud.r-project.org")'
# 3. Install Node.js LTS from NodeSource
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g npm@latest
# 4. Install Claude Code globally
RUN npm install -g @anthropic-ai/claude-code
# 5. Expose Shiny server port
EXPOSE 3838
मुख्य हिस्से:
FROM rocker/shiny-verse:latest- R, Shiny और tidyverse पहले से इंस्टॉल किया हुआ बेस इमेजRUN apt-get install- R पैकेजों के लिए Linux सिस्टम लाइब्रेरीRUN R -q -e 'install.packages(...)'- R पैकेजों को स्थायी रूप से इंस्टॉल करता हैRUN curl... && apt-get install -y nodejs- Node.js इंस्टॉल करता है, जो Claude Code चलाने के लिए ज़रूरी हैRUN npm install -g @anthropic-ai/claude-code- AI सहायता के लिए Claude Code को ग्लोबली इंस्टॉल करता हैEXPOSE 3838- Shiny ऐप्स के लिए पोर्ट 3838 खोलता है
अन्य Rocker इमेज जो आप उपयोग कर सकते हैं:
rocker/r-ver:4.5.3- सिर्फ़ R (विशिष्ट वर्शन)rocker/rstudio:latest- RStudio Server के साथ Rrocker/tidyverse:latest- tidyverse पैकेजों के साथ Rrocker/shiny-verse:latest- Shiny और tidyverse के साथ R (जिसका हम उपयोग कर रहे हैं)
बेस इमेज बदलने के बाद, बदलावों को लागू करने के लिए कंटेनर को फिर से बिल्ड करें।
चरण 11: Docker इमेज में R पैकेज इंस्टॉल करें (वैकल्पिक)
R कंसोल के ज़रिए इंस्टॉल किए गए पैकेज (install.packages()) अस्थायी होते हैं और जब आप कंटेनर को फिर से बिल्ड करते हैं तो गायब हो जाते हैं। पैकेजों को स्थायी बनाने के लिए, उन्हें Dockerfile में जोड़ें।
- VS Code Explorer में,
.devcontainer/Dockerfileपर जाएँ - फ़ाइल खोलने के लिए क्लिक करें
data.tableपैकेज इंस्टॉल करने के लिए अन्य ‘install.packages’ लाइनों के नीचे एक नई लाइन जोड़ें:RUN R -q -e 'install.packages("data.table", repos="https://cloud.r-project.org")'- फ़ाइल सेव करें (File > Save)
- नीचे बाईं ओर हरे आइकन पर क्लिक करें
- मेनू से Rebuild Container चुनें
- VS Code आपके नए पैकेज के साथ कंटेनर को फिर से बिल्ड करेगा (इसमें 2-5 मिनट लगते हैं)
- सत्यापित करने के लिए, एक R टर्मिनल खोलें और टाइप करें:
library(data.table)
अगर यह बिना किसी त्रुटि के लोड हो जाता है, तो पैकेज स्थायी रूप से इंस्टॉल हो गया है।
अगले कदम
- एक नई R स्क्रिप्ट बनाएँ -
R/फ़ोल्डर में एक नई.Rफ़ाइल बनाएँ,mtcarsयाirisजैसे बिल्ट-इन डेटासेट का उपयोग करके डेटा विश्लेषण कोड लिखें - R पैकेज इंस्टॉल करें - Dockerfile को एडिट करके और कंटेनर को फिर से बिल्ड करके अपनी ज़रूरत के पैकेज जोड़ें
- tidyverse को एक्सप्लोर करें - उदाहरण डेटासेट का उपयोग करके
dplyrसे डेटा मैनिपुलेशन औरggplot2से विज़ुअलाइज़ेशन आज़माएँ
समस्या निवारण
- Docker Desktop नहीं चल रहा - Docker Desktop खोलें और कंटेनर फिर से खोलने से पहले हरे स्टेटस इंडिकेटर का इंतज़ार करें
- कंटेनर बिल्ड विफल होना - अपना इंटरनेट कनेक्शन जाँचें; पहला बिल्ड लगभग 2GB डाउनलोड करता है। फिर से कोशिश करने के लिए Rebuild Container पर क्लिक करें
- पोर्ट 3838 पहले से उपयोग में है - उस पोर्ट का उपयोग करने वाले अन्य ऐप्स को बंद करें, या
.devcontainer/devcontainer.jsonमें पोर्ट बदलें
वर्कफ़्लो का अवलोकन
यह सेटअप आपको एक प्रोफेशनल R डेवलपमेंट एनवायरनमेंट देता है:
- VS Code सिंटैक्स हाइलाइटिंग और IntelliSense के साथ कोड एडिटर प्रदान करता है
- Docker कंटेनर R और सभी डिपेंडेंसी के साथ एक आइसोलेटेड Linux एनवायरनमेंट चलाता है
- Rocker इमेज (
rocker/shiny-verse) में R, Shiny, tidyverse और डेवलपमेंट टूल शामिल हैं - Dev Container कॉन्फ़िग (
.devcontainer/) R डिबगिंग और भाषा सपोर्ट के लिए VS Code एक्सटेंशन अपने आप इंस्टॉल करता है - पोर्ट फॉरवर्डिंग आपको कंटेनर के अंदर चल रहे Shiny ऐप को अपने ब्राउज़र से एक्सेस करने देती है
रोज़मर्रा का वर्कफ़्लो
एक बार सब कुछ सेट हो जाने के बाद, यह आपकी दैनिक दिनचर्या है:
- Docker Desktop शुरू करें - ऐप खोलें और हरे स्टेटस इंडिकेटर का इंतज़ार करें (Docker का चलना ज़रूरी है)
- VS Code खोलें - VS Code लॉन्च करें और अपना प्रोजेक्ट फ़ोल्डर खोलें
- कंटेनर में फिर से खोलें - अगर पहले से कंटेनर में नहीं हैं, तो हरे आइकन (नीचे बाईं ओर) पर क्लिक करें और Reopen in Container चुनें
- कोड लिखें और चलाएँ -
.Rफ़ाइलों को एडिट करें,Ctrl+Enter/Cmd+Enterसे लाइन-दर-लाइन चलाएँ, या ▶ Run Shiny App बटन से Shiny ऐप्स चलाएँ - अपना काम सेव करें - आपकी कोड फ़ाइलें (
.R,.Rmd) आपके कंप्यूटर पर सेव होती हैं और सेशन के बीच भी बनी रहती हैं - कमिट और पुश करें - अपने बदलाव कमिट करने और रिपॉज़िटरी में पुश करने के लिए GitHub Desktop का उपयोग करें
Docker Desktop क्या है?
Docker Desktop एक ऐप्लिकेशन है जो आपके कंप्यूटर पर Docker का उपयोग करना आसान बनाता है। यह वे बैकग्राउंड सेवाएँ प्रदान करता है जिनकी Docker को ज़रूरत होती है, साथ ही एक विज़ुअल विंडो भी देता है जहाँ आप अपने कंटेनर, इमेज, स्टोरेज और अन्य Docker संसाधनों को देख और मैनेज कर सकते हैं।
आप Docker Desktop को अपने कंटेनर के लिए कंट्रोल सेंटर मान सकते हैं। जब आप Docker Desktop खोलते हैं, तो यह Docker इंजन शुरू करता है। Docker इंजन Docker का वह हिस्सा है जो वास्तव में कंटेनर बनाता और चलाता है। आपको आमतौर पर इंजन से सीधे इंटरैक्ट करने की ज़रूरत नहीं होती क्योंकि Docker Desktop इसे आपके लिए मैनेज करता है।
Docker Desktop क्या करता है?
Docker Desktop कई महत्वपूर्ण काम करता है:
- Docker इंजन चलाना - इंजन उन कंटेनरों को बनाता और चलाता है जिनमें आपका सॉफ़्टवेयर होता है।
- इमेज डाउनलोड करना - इमेज एक तैयार शुरुआती पैकेज है, जैसे R और सामान्य R पैकेजों वाला Linux सिस्टम। इस ट्यूटोरियल में, प्रोजेक्ट Rocker प्रोजेक्ट की एक इमेज का उपयोग करता है।
- कंटेनर बनाना - Docker इस प्रोजेक्ट में Dockerfile और Dev Container सेटिंग्स का उपयोग करके R डेवलपमेंट के लिए तैयार एक कंटेनर बनाता है।
- कंटेनर शुरू और बंद करना - जब ज़रूरत हो, आप कंटेनर को खोल, रोक, फिर से शुरू, या बंद कर सकते हैं।
- कंटेनर को आपकी फ़ाइलों से जोड़ना - आपका प्रोजेक्ट फ़ोल्डर कंटेनर के अंदर उपलब्ध कराया जाता है, ताकि आप VS Code में फ़ाइलें एडिट कर सकें जबकि कोड कंटेनर में चलता है।
- कंटेनर को आपके ब्राउज़र से जोड़ना - जब Shiny ऐप पोर्ट 3838 का उपयोग करता है, तो Docker Desktop और VS Code मिलकर उस ऐप को आपके वेब ब्राउज़र में उपलब्ध कराते हैं।
यह ट्यूटोरियल Docker Desktop के साथ कैसे फिट बैठता है
तीन हिस्से मिलकर काम करते हैं:
- Docker Desktop आपके कंप्यूटर पर Docker इंजन चलाता है।
- VS Code वह एडिटर देता है जहाँ आप R कोड लिखते और चलाते हैं।
- Dev Container R, R पैकेज और इस प्रोजेक्ट में उपयोग किए जाने वाले टूल वाला एक तैयार Linux एनवायरनमेंट प्रदान करता है।
जब आप Reopen in Container चुनते हैं, तो VS Code Docker Desktop से प्रोजेक्ट का कंटेनर बनाने या शुरू करने के लिए कहता है। आपका कंप्यूटर अभी भी एप्लिकेशन चला रहा है, लेकिन R एनवायरनमेंट कंटेनर के अंदर है। इससे R वर्शन, पैकेज और सिस्टम टूल आपके कंप्यूटर के बाकी हिस्सों से अलग रहते हैं।
Docker Desktop VS Code, R या आपके वेब ब्राउज़र की जगह नहीं लेता। यह वह एनवायरनमेंट प्रदान करता है जो कंटेनर को चलाता है। VS Code वह जगह है जहाँ आप काम करते हैं, R वह भाषा है जिसका आप उपयोग करते हैं, और आपका ब्राउज़र वह जगह है जहाँ आप Shiny ऐप देखते हैं।
Docker Desktop का उपयोग क्यों करें?
R और हर ज़रूरी पैकेज को सीधे अपने कंप्यूटर पर इंस्टॉल करने से कभी-कभी वर्शन कॉन्फ़्लिक्ट हो सकता है। एक प्रोजेक्ट को किसी दूसरे प्रोजेक्ट से अलग पैकेज वर्शन की ज़रूरत हो सकती है। Docker Desktop हर प्रोजेक्ट को उसका अपना नियंत्रित एनवायरनमेंट देकर इन कॉन्फ़्लिक्ट से बचने में मदद करता है।
उदाहरण के लिए, अगर कोई सहपाठी वही प्रोजेक्ट फ़ाइलें और Docker सेटिंग्स उपयोग करता है, तो Docker एक ऐसा एनवायरनमेंट बना सकता है जो आपके जैसा ही हो। इससे यह संभावना कम हो जाती है कि आपको केवल अलग सॉफ़्टवेयर वर्शन के कारण कोई त्रुटि दिखे। आपका R कोड और प्रोजेक्ट फ़ाइलें आपके कंप्यूटर पर ही रहती हैं, जबकि उन्हें चलाने के लिए ज़रूरी टूल कंटेनर के अंदर व्यवस्थित होते हैं।
इस प्रोजेक्ट को कंटेनर में बिल्ड या फिर से खोलने से पहले Docker Desktop का खुला और चालू होना ज़रूरी है। अगर Docker Desktop बंद है, तो VS Code कंटेनर शुरू नहीं कर सकता, और आपको यह त्रुटि दिख सकती है कि Docker नहीं चल रहा है।
निर्माता Steven Ge, 7 दिसंबर, 2025. </content>