इसे छोड़कर कंटेंट पर जाएं

समस्या निवारण

कंटेनर शुरू नहीं हो रहा

Section titled “कंटेनर शुरू नहीं हो रहा”

”Conflict. The container name is already in use”

Section titled “”Conflict. The container name is already in use””
Terminal window
docker rm -f devcontainer
docker compose up -d

AI टूल्स काम नहीं कर रहे

Section titled “AI टूल्स काम नहीं कर रहे”

इमेज पुरानी हो सकती है। नवीनतम इमेज पुल करें और पुनः शुरू करें:

Terminal window
docker compose pull
docker compose up -d

Claude “Not logged in” दिखा रहा है

Section titled “Claude “Not logged in” दिखा रहा है”

एंट्रीपॉइंट ~/.claude.json में ऑनबोर्डिंग फ्लैग सेट करता है। यदि यह फ़ाइल मौजूद नहीं है:

Terminal window
echo '{"hasCompletedOnboarding": true}' > ~/.claude.json

Claude “Invalid API key” दिखा रहा है

Section titled “Claude “Invalid API key” दिखा रहा है”

जाँचें कि वास्तव में कौन सी वैल्यू सेट है:

Terminal window
echo "$ANTHROPIC_API_KEY"

सामान्य कारण:

  • LiteLLM प्रॉक्सी कुंजी गायब या अमान्य है — यदि आप प्रॉक्सी मोड का उपयोग कर रहे हैं, तो सुनिश्चित करें कि .env में LITELLM_API_KEY में सही प्रॉक्सी क्रेडेंशियल है, फिर कंटेनर को पुनः शुरू करें ताकि एंट्रीपॉइंट ANTHROPIC_API_KEY को डिराइव कर सके।
  • OAuth टोकन या प्रॉक्सी मोड मिसमैच — केवल एक ऑथ मोड का उपयोग करें। यदि CLAUDE_CODE_OAUTH_TOKEN सेट है, तो यह LiteLLM प्रॉक्सी मोड पर प्राथमिकता लेता है।

API अनुरोध 401 त्रुटि के साथ विफल हो रहे हैं

Section titled “API अनुरोध 401 त्रुटि के साथ विफल हो रहे हैं”

जाँचें कि आपकी API कुंजी सही तरीके से सेट है:

Terminal window
echo "$ANTHROPIC_API_KEY"

अपने प्रदाता को सीधे कॉल करके सत्यापित करें कि यह काम कर रही है।

Claude “model not found” कह रहा है

Section titled “Claude “model not found” कह रहा है”

मॉडल आपके प्रदाता और API कुंजी द्वारा निर्धारित होता है। उपलब्ध मॉडलों के लिए अपने प्रदाता का दस्तावेज़ीकरण देखें।

gh CLI को GH_TOKEN एनवायरनमेंट वेरिएबल की आवश्यकता है। इसे अपनी .env फ़ाइल में जोड़ें:

GH_TOKEN=ghp_your-token-here

github.com/settings/tokens पर टोकन बनाएँ। फाइन-ग्रेंड टोकन (अनुशंसित) या repo स्कोप वाले क्लासिक टोकन दोनों काम करते हैं। .env अपडेट करने के बाद कंटेनर को पुनः शुरू करें।

HTTPS git clone 401 के साथ विफल होता है

Section titled “HTTPS git clone 401 के साथ विफल होता है”

जब GH_TOKEN सेट होता है, तो एंट्रीपॉइंट HTTPS के लिए git क्रेडेंशियल हेल्पर कॉन्फ़िगर करने के लिए gh auth setup-git चलाता है। यदि HTTPS ऑपरेशन विफल होते हैं:

  1. सत्यापित करें कि टोकन वैध है: gh auth status
  2. जाँचें कि क्रेडेंशियल हेल्पर कॉन्फ़िगर है: git config --global credential.helper
  3. एंट्रीपॉइंट को पुनः चलाने के लिए कंटेनर को पुनः शुरू करें

दोनों प्रमाणीकरण विधियाँ कंटेनर में एक साथ काम कर सकती हैं:

  • SSH (.env में SSH_PRIVATE_KEY) — git@github.com: URL का उपयोग करता है। यदि आपका संगठन SSH को अनिवार्य करता है तो आवश्यक है।
  • HTTPS (.env में GH_TOKEN) — https://github.com/ URL का उपयोग करता है। सरल सेटअप, कुंजी प्रबंधन की आवश्यकता नहीं।

यदि दोनों कॉन्फ़िगर हैं, तो git रिमोट URL से मेल खाने वाले प्रोटोकॉल का उपयोग करता है। मौजूदा क्लोन को बदलने के लिए:

Terminal window
# SSH से HTTPS
git remote set-url origin https://github.com/owner/repo.git
# HTTPS से SSH
git remote set-url origin git@github.com:owner/repo.git

अनुमति संबंधी समस्याएँ

Section titled “अनुमति संबंधी समस्याएँ”

/workspace या /home पर “Permission denied”

Section titled “/workspace या /home पर “Permission denied””
Terminal window
sudo chown -R $(id -u):$(id -g) /workspace ~

npm install EACCES के साथ विफल होता है

Section titled “npm install EACCES के साथ विफल होता है”

एंट्रीपॉइंट स्वचालित रूप से ~/.npm-global पर उपयोगकर्ता-लिखने योग्य npm ग्लोबल प्रीफ़िक्स कॉन्फ़िगर करता है, इसलिए रनटाइम npm install -g कमांड को sudo के बिना काम करना चाहिए। यदि आपको अभी भी EACCES त्रुटियाँ दिखती हैं, तो मैन्युअल रूप से फ़िक्स लागू करें:

Terminal window
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
export PATH="$HOME/.npm-global/bin:$PATH"

बिल्ड संबंधी समस्याएँ

Section titled “बिल्ड संबंधी समस्याएँ”

बिल्ड में बहुत अधिक समय लग रहा है

Section titled “बिल्ड में बहुत अधिक समय लग रहा है”

पहला बिल्ड बेस इमेज (~1 GB) डाउनलोड करता है। बाद के बिल्ड कैश का उपयोग करते हैं। यदि हर बार धीमा होता है:

Terminal window
docker builder prune
Terminal window
docker system prune -a --volumes

चेतावनी: यह सभी अप्रयुक्त कंटेनरों, इमेज और वॉल्यूम को हटा देता है — केवल इस प्रोजेक्ट के नहीं।

कंटेनर के अंदर से इंटरनेट तक नहीं पहुँच सकते

Section titled “कंटेनर के अंदर से इंटरनेट तक नहीं पहुँच सकते”
Terminal window
ping -c 1 8.8.8.8
nslookup google.com
curl -I https://github.com

यदि DNS विफल होता है, तो होस्ट पर /etc/docker/daemon.json में जोड़ें:

{
"dns": ["8.8.8.8", "8.8.4.4"]
}

फिर Docker को पुनः शुरू करें।

रिमोट डिस्प्ले (noVNC)

Section titled “रिमोट डिस्प्ले (noVNC)”

noVNC में काली स्क्रीन

Section titled “noVNC में काली स्क्रीन”

Xvfb शुरू नहीं हुआ हो सकता है। कंटेनर के अंदर जाँचें:

Terminal window
ps aux | grep Xvfb

यदि चल नहीं रहा है, तो जाँचें कि ENABLE_VNC false पर सेट नहीं है और कंटेनर को पुनः शुरू करें।

“Cannot open display” या “No display” त्रुटि

Section titled ““Cannot open display” या “No display” त्रुटि”

DISPLAY एनवायरनमेंट वेरिएबल सेट नहीं हो सकता है। सत्यापित करें:

Terminal window
echo "$DISPLAY"

यह :99 होना चाहिए। यदि खाली है, तो अपनी .env या devcontainer.json में DISPLAY=:99 जोड़ें और पुनः शुरू करें।

पोर्ट 6080 कनेक्शन अस्वीकृत

Section titled “पोर्ट 6080 कनेक्शन अस्वीकृत”

noVNC चल नहीं रहा हो सकता है। कंटेनर के अंदर जाँचें:

Terminal window
ps aux | grep -E 'novnc|websockify'

यदि चल नहीं रहा है, तो सत्यापित करें कि ENABLE_VNC true है (डिफ़ॉल्ट) और कंटेनर लॉग जाँचें:

Terminal window
docker compose logs dev | grep -i vnc

पोर्ट 6080 पहले से उपयोग में है

Section titled “पोर्ट 6080 पहले से उपयोग में है”

docker-compose.yml में होस्ट पोर्ट बदलें:

ports:
- "127.0.0.1:16080:6080"

Chrome रिमोट डिबगिंग प्रतिक्रिया नहीं दे रहा

Section titled “Chrome रिमोट डिबगिंग प्रतिक्रिया नहीं दे रहा”

साझा Chrome इंस्टेंस पोर्ट 9222 पर चल रहा होना चाहिए। कंटेनर के अंदर जाँचें:

Terminal window
# क्या Chrome चल रहा है?
curl http://localhost:9222/json/version
# Chrome लॉग जाँचें
cat ~/.local/share/chrome-browser/chrome.log
# सिमलिंक सत्यापित करें
ls -la /opt/google/chrome/chrome
# Chrome को मैन्युअल रूप से पुनः शुरू करें
. /usr/local/lib/chrome-browser.sh
start_chrome_browser

यदि सिमलिंक गायब है, तो नवीनतम इमेज पुल करें और कंटेनर को पुनः शुरू करें।

ब्राउज़र प्रोफ़ाइल लॉक त्रुटि

Section titled “ब्राउज़र प्रोफ़ाइल लॉक त्रुटि”

साझा ब्राउज़र आर्किटेक्चर के साथ, प्रोफ़ाइल लॉक त्रुटियाँ नहीं होनी चाहिए। यदि आपको कोई दिखती है, तो एक पुरानी Chrome प्रक्रिया लॉक पकड़े हुए हो सकती है:

Terminal window
# किसी भी पुरानी Chrome प्रक्रिया को समाप्त करें
pkill -f 'chrome.*remote-debugging-port' || true
# लॉक फ़ाइल हटाएँ
rm -f ~/.cache/chrome-devtools-mcp/chrome-profile/SingletonLock
# Chrome पुनः शुरू करें
. /usr/local/lib/chrome-browser.sh
start_chrome_browser

डुप्लिकेट chrome-devtools-mcp टूल्स

Section titled “डुप्लिकेट chrome-devtools-mcp टूल्स”

chrome-devtools-mcp सर्वर अब ~/.claude/settings.json में ग्लोबली पंजीकृत है। यदि आपके पास प्रति-रिपो .mcp.json भी है जो इसे पंजीकृत करता है, तो आपको डुप्लिकेट टूल्स दिखेंगे। प्रति-रिपो .mcp.json फ़ाइलों से chrome-devtools-mcp एंट्री हटाएँ:

Terminal window
# प्रति-रिपो कॉन्फ़िग जाँचें
cat .mcp.json

ग्लोबल पंजीकरण का उपयोग करने के लिए किसी भी प्रति-रिपो .mcp.json से chrome-devtools-mcp कुंजी हटाएँ।

सब कुछ रीसेट करें

Section titled “सब कुछ रीसेट करें”
Terminal window
docker compose down -v
docker rm -f devcontainer 2>/dev/null
docker compose pull
docker compose up -d

यह वॉल्यूम में सभी डेटा नष्ट कर देता है। आपको रिपो को पुनः क्लोन करना और टूल्स को पुनः कॉन्फ़िगर करना होगा।