- होम
- डेव कंटेनर
- समस्या निवारण
समस्या निवारण
कंटेनर शुरू नहीं हो रहा
Section titled “कंटेनर शुरू नहीं हो रहा””Conflict. The container name is already in use”
Section titled “”Conflict. The container name is already in use””docker rm -f devcontainerdocker compose up -dpodman rm -f devcontainerpodman-compose up -dAI टूल्स काम नहीं कर रहे
Section titled “AI टूल्स काम नहीं कर रहे””claude: command not found”
Section titled “”claude: command not found””इमेज पुरानी हो सकती है। नवीनतम इमेज पुल करें और पुनः शुरू करें:
docker compose pulldocker compose up -dpodman-compose pullpodman-compose up -dClaude “Not logged in” दिखा रहा है
Section titled “Claude “Not logged in” दिखा रहा है”एंट्रीपॉइंट ~/.claude.json में ऑनबोर्डिंग फ्लैग सेट करता है। यदि यह फ़ाइल मौजूद नहीं है:
echo '{"hasCompletedOnboarding": true}' > ~/.claude.jsonClaude “Invalid API key” दिखा रहा है
Section titled “Claude “Invalid API key” दिखा रहा है”जाँचें कि वास्तव में कौन सी वैल्यू सेट है:
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 कुंजी सही तरीके से सेट है:
echo "$ANTHROPIC_API_KEY"अपने प्रदाता को सीधे कॉल करके सत्यापित करें कि यह काम कर रही है।
Claude “model not found” कह रहा है
Section titled “Claude “model not found” कह रहा है”मॉडल आपके प्रदाता और API कुंजी द्वारा निर्धारित होता है। उपलब्ध मॉडलों के लिए अपने प्रदाता का दस्तावेज़ीकरण देखें।
GitHub CLI
Section titled “GitHub CLI””gh: not authenticated”
Section titled “”gh: not authenticated””gh CLI को GH_TOKEN एनवायरनमेंट वेरिएबल की आवश्यकता है। इसे अपनी .env फ़ाइल में जोड़ें:
GH_TOKEN=ghp_your-token-heregithub.com/settings/tokens पर टोकन बनाएँ। फाइन-ग्रेंड टोकन (अनुशंसित) या repo स्कोप वाले क्लासिक टोकन दोनों काम करते हैं। .env अपडेट करने के बाद कंटेनर को पुनः शुरू करें।
HTTPS git clone 401 के साथ विफल होता है
Section titled “HTTPS git clone 401 के साथ विफल होता है”जब GH_TOKEN सेट होता है, तो एंट्रीपॉइंट HTTPS के लिए git क्रेडेंशियल हेल्पर कॉन्फ़िगर करने के लिए gh auth setup-git चलाता है। यदि HTTPS ऑपरेशन विफल होते हैं:
- सत्यापित करें कि टोकन वैध है:
gh auth status - जाँचें कि क्रेडेंशियल हेल्पर कॉन्फ़िगर है:
git config --global credential.helper - एंट्रीपॉइंट को पुनः चलाने के लिए कंटेनर को पुनः शुरू करें
SSH बनाम HTTPS
Section titled “SSH बनाम HTTPS”दोनों प्रमाणीकरण विधियाँ कंटेनर में एक साथ काम कर सकती हैं:
- SSH (
.envमेंSSH_PRIVATE_KEY) —git@github.com:URL का उपयोग करता है। यदि आपका संगठन SSH को अनिवार्य करता है तो आवश्यक है। - HTTPS (
.envमेंGH_TOKEN) —https://github.com/URL का उपयोग करता है। सरल सेटअप, कुंजी प्रबंधन की आवश्यकता नहीं।
यदि दोनों कॉन्फ़िगर हैं, तो git रिमोट URL से मेल खाने वाले प्रोटोकॉल का उपयोग करता है। मौजूदा क्लोन को बदलने के लिए:
# SSH से HTTPSgit remote set-url origin https://github.com/owner/repo.git
# HTTPS से SSHgit remote set-url origin git@github.com:owner/repo.gitअनुमति संबंधी समस्याएँ
Section titled “अनुमति संबंधी समस्याएँ”/workspace या /home पर “Permission denied”
Section titled “/workspace या /home पर “Permission denied””sudo chown -R $(id -u):$(id -g) /workspace ~npm install EACCES के साथ विफल होता है
Section titled “npm install EACCES के साथ विफल होता है”एंट्रीपॉइंट स्वचालित रूप से ~/.npm-global पर उपयोगकर्ता-लिखने योग्य npm ग्लोबल प्रीफ़िक्स कॉन्फ़िगर करता है, इसलिए रनटाइम npm install -g कमांड को sudo के बिना काम करना चाहिए। यदि आपको अभी भी EACCES त्रुटियाँ दिखती हैं, तो मैन्युअल रूप से फ़िक्स लागू करें:
mkdir -p ~/.npm-globalnpm config set prefix ~/.npm-globalexport PATH="$HOME/.npm-global/bin:$PATH"बिल्ड संबंधी समस्याएँ
Section titled “बिल्ड संबंधी समस्याएँ”बिल्ड में बहुत अधिक समय लग रहा है
Section titled “बिल्ड में बहुत अधिक समय लग रहा है”पहला बिल्ड बेस इमेज (~1 GB) डाउनलोड करता है। बाद के बिल्ड कैश का उपयोग करते हैं। यदि हर बार धीमा होता है:
docker builder prunepodman builder prune“No space left on device”
Section titled ““No space left on device””docker system prune -a --volumespodman system prune -a --volumesचेतावनी: यह सभी अप्रयुक्त कंटेनरों, इमेज और वॉल्यूम को हटा देता है — केवल इस प्रोजेक्ट के नहीं।
नेटवर्किंग
Section titled “नेटवर्किंग”कंटेनर के अंदर से इंटरनेट तक नहीं पहुँच सकते
Section titled “कंटेनर के अंदर से इंटरनेट तक नहीं पहुँच सकते”ping -c 1 8.8.8.8nslookup google.comcurl -I https://github.comयदि DNS विफल होता है, तो होस्ट पर /etc/docker/daemon.json में जोड़ें:
{ "dns": ["8.8.8.8", "8.8.4.4"]}फिर Docker को पुनः शुरू करें।
यदि DNS विफल होता है, तो Podman मशीन के अंदर DNS कॉन्फ़िगर करें:
podman machine sshsudo sh -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'exitया होस्ट पर ~/.config/containers/containers.conf में DNS सेटिंग्स जोड़ें:
[containers]dns_servers = ["8.8.8.8", "8.8.4.4"]फिर Podman को पुनः शुरू करें: podman machine stop && podman machine start।
रिमोट डिस्प्ले (noVNC)
Section titled “रिमोट डिस्प्ले (noVNC)”noVNC में काली स्क्रीन
Section titled “noVNC में काली स्क्रीन”Xvfb शुरू नहीं हुआ हो सकता है। कंटेनर के अंदर जाँचें:
ps aux | grep Xvfbयदि चल नहीं रहा है, तो जाँचें कि ENABLE_VNC false पर सेट नहीं है और कंटेनर को पुनः शुरू करें।
“Cannot open display” या “No display” त्रुटि
Section titled ““Cannot open display” या “No display” त्रुटि”DISPLAY एनवायरनमेंट वेरिएबल सेट नहीं हो सकता है। सत्यापित करें:
echo "$DISPLAY"यह :99 होना चाहिए। यदि खाली है, तो अपनी .env या devcontainer.json में DISPLAY=:99 जोड़ें और पुनः शुरू करें।
पोर्ट 6080 कनेक्शन अस्वीकृत
Section titled “पोर्ट 6080 कनेक्शन अस्वीकृत”noVNC चल नहीं रहा हो सकता है। कंटेनर के अंदर जाँचें:
ps aux | grep -E 'novnc|websockify'यदि चल नहीं रहा है, तो सत्यापित करें कि ENABLE_VNC true है (डिफ़ॉल्ट) और कंटेनर लॉग जाँचें:
docker compose logs dev | grep -i vncpodman-compose logs dev | grep -i vncपोर्ट 6080 पहले से उपयोग में है
Section titled “पोर्ट 6080 पहले से उपयोग में है”docker-compose.yml में होस्ट पोर्ट बदलें:
ports: - "127.0.0.1:16080:6080"Chrome DevTools MCP
Section titled “Chrome DevTools MCP”Chrome रिमोट डिबगिंग प्रतिक्रिया नहीं दे रहा
Section titled “Chrome रिमोट डिबगिंग प्रतिक्रिया नहीं दे रहा”साझा Chrome इंस्टेंस पोर्ट 9222 पर चल रहा होना चाहिए। कंटेनर के अंदर जाँचें:
# क्या 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.shstart_chrome_browserयदि सिमलिंक गायब है, तो नवीनतम इमेज पुल करें और कंटेनर को पुनः शुरू करें।
ब्राउज़र प्रोफ़ाइल लॉक त्रुटि
Section titled “ब्राउज़र प्रोफ़ाइल लॉक त्रुटि”साझा ब्राउज़र आर्किटेक्चर के साथ, प्रोफ़ाइल लॉक त्रुटियाँ नहीं होनी चाहिए। यदि आपको कोई दिखती है, तो एक पुरानी Chrome प्रक्रिया लॉक पकड़े हुए हो सकती है:
# किसी भी पुरानी Chrome प्रक्रिया को समाप्त करेंpkill -f 'chrome.*remote-debugging-port' || true
# लॉक फ़ाइल हटाएँrm -f ~/.cache/chrome-devtools-mcp/chrome-profile/SingletonLock
# Chrome पुनः शुरू करें. /usr/local/lib/chrome-browser.shstart_chrome_browserडुप्लिकेट chrome-devtools-mcp टूल्स
Section titled “डुप्लिकेट chrome-devtools-mcp टूल्स”chrome-devtools-mcp सर्वर अब ~/.claude/settings.json में ग्लोबली पंजीकृत है। यदि आपके पास प्रति-रिपो .mcp.json भी है जो इसे पंजीकृत करता है, तो आपको डुप्लिकेट टूल्स दिखेंगे। प्रति-रिपो .mcp.json फ़ाइलों से chrome-devtools-mcp एंट्री हटाएँ:
# प्रति-रिपो कॉन्फ़िग जाँचेंcat .mcp.jsonग्लोबल पंजीकरण का उपयोग करने के लिए किसी भी प्रति-रिपो .mcp.json से chrome-devtools-mcp कुंजी हटाएँ।
सब कुछ रीसेट करें
Section titled “सब कुछ रीसेट करें”docker compose down -vdocker rm -f devcontainer 2>/dev/nulldocker compose pulldocker compose up -dpodman-compose down -vpodman rm -f devcontainer 2>/dev/nullpodman-compose pullpodman-compose up -dयह वॉल्यूम में सभी डेटा नष्ट कर देता है। आपको रिपो को पुनः क्लोन करना और टूल्स को पुनः कॉन्फ़िगर करना होगा।