- Startseite
- Entwicklungscontainer
- Fehlerbehebung
Fehlerbehebung
Container startet nicht
Abschnitt betitelt „Container startet nicht“”Conflict. The container name is already in use”
Abschnitt betitelt „”Conflict. The container name is already in use”“docker rm -f devcontainerdocker compose up -dpodman rm -f devcontainerpodman-compose up -dKI-Tools funktionieren nicht
Abschnitt betitelt „KI-Tools funktionieren nicht“”claude: command not found”
Abschnitt betitelt „”claude: command not found”“Das Image ist möglicherweise veraltet. Laden Sie das neueste herunter und starten Sie neu:
docker compose pulldocker compose up -dpodman-compose pullpodman-compose up -dClaude zeigt “Not logged in”
Abschnitt betitelt „Claude zeigt “Not logged in”“Der Entrypoint befüllt ~/.claude.json mit Onboarding-Flags. Falls die Datei fehlt:
echo '{"hasCompletedOnboarding": true}' > ~/.claude.jsonClaude zeigt “Invalid API key”
Abschnitt betitelt „Claude zeigt “Invalid API key”“Prüfen Sie, welcher Wert tatsächlich gesetzt ist:
echo "$ANTHROPIC_API_KEY"Häufige Ursachen:
- LiteLLM-Proxy-Schlüssel fehlt oder ist ungültig — Wenn Sie den Proxy-Modus verwenden, stellen Sie sicher, dass
LITELLM_API_KEYin.envdie korrekten Proxy-Anmeldedaten enthält. Starten Sie dann den Container neu, damit der EntrypointANTHROPIC_API_KEYableiten kann. - OAuth-Token oder Proxy-Modus-Konflikt — Verwenden Sie genau einen Authentifizierungsmodus. Wenn
CLAUDE_CODE_OAUTH_TOKENgesetzt ist, hat es Vorrang vor dem LiteLLM-Proxy-Modus.
API-Anfragen schlagen mit 401 fehl
Abschnitt betitelt „API-Anfragen schlagen mit 401 fehl“Prüfen Sie, ob Ihr API-Schlüssel korrekt gesetzt ist:
echo "$ANTHROPIC_API_KEY"Überprüfen Sie die Funktion durch einen direkten Aufruf an Ihren Anbieter.
Claude meldet “model not found”
Abschnitt betitelt „Claude meldet “model not found”“Das Modell wird durch Ihren Anbieter und API-Schlüssel bestimmt. Prüfen Sie die Dokumentation Ihres Anbieters für verfügbare Modelle.
GitHub CLI
Abschnitt betitelt „GitHub CLI“”gh: not authenticated”
Abschnitt betitelt „”gh: not authenticated”“Die gh-CLI benötigt eine GH_TOKEN-Umgebungsvariable. Fügen Sie diese Ihrer .env-Datei hinzu:
GH_TOKEN=ghp_your-token-hereErstellen Sie ein Token unter github.com/settings/tokens. Feingranulare Tokens (empfohlen) oder klassische Tokens mit repo-Berechtigung funktionieren beide. Starten Sie den Container nach der Aktualisierung von .env neu.
HTTPS-Git-Clone schlägt mit 401 fehl
Abschnitt betitelt „HTTPS-Git-Clone schlägt mit 401 fehl“Wenn GH_TOKEN gesetzt ist, führt der Entrypoint gh auth setup-git aus, um den Git-Credential-Helper für HTTPS zu konfigurieren. Falls HTTPS-Operationen fehlschlagen:
- Überprüfen Sie, ob das Token gültig ist:
gh auth status - Prüfen Sie, ob der Credential-Helper konfiguriert ist:
git config --global credential.helper - Starten Sie den Container neu, um den Entrypoint erneut auszuführen
SSH vs. HTTPS
Abschnitt betitelt „SSH vs. HTTPS“Beide Authentifizierungsmethoden können im Container koexistieren:
- SSH (
SSH_PRIVATE_KEYin.env) — verwendetgit@github.com:-URLs. Erforderlich, wenn Ihre Organisation SSH vorschreibt. - HTTPS (
GH_TOKENin.env) — verwendethttps://github.com/-URLs. Einfachere Einrichtung, keine Schlüsselverwaltung.
Wenn beide konfiguriert sind, verwendet Git das Protokoll, das zur Remote-URL passt. Um einen bestehenden Klon umzustellen:
# SSH zu HTTPSgit remote set-url origin https://github.com/owner/repo.git
# HTTPS zu SSHgit remote set-url origin git@github.com:owner/repo.gitBerechtigungsprobleme
Abschnitt betitelt „Berechtigungsprobleme“”Permission denied” bei /workspace oder /home
Abschnitt betitelt „”Permission denied” bei /workspace oder /home“sudo chown -R $(id -u):$(id -g) /workspace ~npm install schlägt mit EACCES fehl
Abschnitt betitelt „npm install schlägt mit EACCES fehl“Der Entrypoint konfiguriert automatisch ein benutzerbeschreibbares npm-Global-Prefix unter ~/.npm-global, sodass npm install -g-Befehle zur Laufzeit ohne sudo funktionieren sollten. Falls weiterhin EACCES-Fehler auftreten, wenden Sie die Korrektur manuell an:
mkdir -p ~/.npm-globalnpm config set prefix ~/.npm-globalexport PATH="$HOME/.npm-global/bin:$PATH"Build-Probleme
Abschnitt betitelt „Build-Probleme“Build dauert sehr lange
Abschnitt betitelt „Build dauert sehr lange“Der erste Build lädt das Basis-Image herunter (~1 GB). Nachfolgende Builds verwenden den Cache. Falls es jedes Mal langsam ist:
docker builder prunepodman builder prune“No space left on device”
Abschnitt betitelt „“No space left on device”“docker system prune -a --volumespodman system prune -a --volumesWarnung: Dies entfernt alle ungenutzten Container, Images und Volumes — nicht nur die dieses Projekts.
Netzwerk
Abschnitt betitelt „Netzwerk“Kein Internetzugang aus dem Container heraus
Abschnitt betitelt „Kein Internetzugang aus dem Container heraus“ping -c 1 8.8.8.8nslookup google.comcurl -I https://github.comFalls DNS fehlschlägt, fügen Sie auf dem Host in /etc/docker/daemon.json hinzu:
{ "dns": ["8.8.8.8", "8.8.4.4"]}Starten Sie dann Docker neu.
Falls DNS fehlschlägt, konfigurieren Sie DNS innerhalb der Podman-Maschine:
podman machine sshsudo sh -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'exitOder fügen Sie DNS-Einstellungen in ~/.config/containers/containers.conf auf dem Host hinzu:
[containers]dns_servers = ["8.8.8.8", "8.8.4.4"]Starten Sie dann Podman neu: podman machine stop && podman machine start.
Remote-Anzeige (noVNC)
Abschnitt betitelt „Remote-Anzeige (noVNC)“Schwarzer Bildschirm in noVNC
Abschnitt betitelt „Schwarzer Bildschirm in noVNC“Xvfb wurde möglicherweise nicht gestartet. Prüfen Sie innerhalb des Containers:
ps aux | grep XvfbFalls nicht aktiv, überprüfen Sie, dass ENABLE_VNC nicht auf false gesetzt ist, und starten Sie den Container neu.
”Cannot open display” oder “No display”-Fehler
Abschnitt betitelt „”Cannot open display” oder “No display”-Fehler“Die Umgebungsvariable DISPLAY ist möglicherweise nicht gesetzt. Überprüfen Sie:
echo "$DISPLAY"Der Wert sollte :99 sein. Falls leer, fügen Sie DISPLAY=:99 zu Ihrer .env oder devcontainer.json hinzu und starten Sie neu.
Port 6080 — Verbindung abgelehnt
Abschnitt betitelt „Port 6080 — Verbindung abgelehnt“noVNC läuft möglicherweise nicht. Prüfen Sie innerhalb des Containers:
ps aux | grep -E 'novnc|websockify'Falls nicht aktiv, überprüfen Sie, ob ENABLE_VNC auf true gesetzt ist (Standardwert), und prüfen Sie die Container-Logs:
docker compose logs dev | grep -i vncpodman-compose logs dev | grep -i vncPort 6080 wird bereits verwendet
Abschnitt betitelt „Port 6080 wird bereits verwendet“Ändern Sie den Host-Port in docker-compose.yml:
ports: - "127.0.0.1:16080:6080"Chrome DevTools MCP
Abschnitt betitelt „Chrome DevTools MCP“Chrome Remote-Debugging reagiert nicht
Abschnitt betitelt „Chrome Remote-Debugging reagiert nicht“Die gemeinsam genutzte Chrome-Instanz sollte auf Port 9222 laufen. Prüfen Sie innerhalb des Containers:
# Läuft Chrome?curl http://localhost:9222/json/version
# Chrome-Logs prüfencat ~/.local/share/chrome-browser/chrome.log
# Symlink überprüfenls -la /opt/google/chrome/chrome
# Chrome manuell neu starten. /usr/local/lib/chrome-browser.shstart_chrome_browserFalls der Symlink fehlt, laden Sie das neueste Image herunter und starten Sie den Container neu.
Browser-Profil-Sperrfehler
Abschnitt betitelt „Browser-Profil-Sperrfehler“Mit der gemeinsam genutzten Browser-Architektur sollten Profil-Sperrfehler nicht auftreten. Falls dennoch einer erscheint, hält möglicherweise ein verwaister Chrome-Prozess die Sperre:
# Verwaiste Chrome-Prozesse beendenpkill -f 'chrome.*remote-debugging-port' || true
# Sperrdatei entfernenrm -f ~/.cache/chrome-devtools-mcp/chrome-profile/SingletonLock
# Chrome neu starten. /usr/local/lib/chrome-browser.shstart_chrome_browserDoppelte chrome-devtools-mcp-Tools
Abschnitt betitelt „Doppelte chrome-devtools-mcp-Tools“Der chrome-devtools-mcp-Server ist jetzt global in ~/.claude/settings.json registriert. Wenn Sie eine projektspezifische .mcp.json haben, die ihn ebenfalls registriert, werden doppelte Tools angezeigt. Entfernen Sie den chrome-devtools-mcp-Eintrag aus projektspezifischen .mcp.json-Dateien:
# Projektspezifische Konfiguration prüfencat .mcp.jsonEntfernen Sie den chrome-devtools-mcp-Schlüssel aus allen projektspezifischen .mcp.json-Dateien, um die globale Registrierung zu verwenden.
Alles zurücksetzen
Abschnitt betitelt „Alles zurücksetzen“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 -dDies löscht alle Daten in Volumes. Sie müssen Repositories erneut klonen und Tools neu konfigurieren.