- Accueil
- Conteneur de développement
- Dépannage
Dépannage
Le conteneur ne démarre pas
Section intitulée « Le conteneur ne démarre pas »”Conflict. The container name is already in use”
Section intitulée « ”Conflict. The container name is already in use” »docker rm -f devcontainerdocker compose up -dpodman rm -f devcontainerpodman-compose up -dLes outils IA ne fonctionnent pas
Section intitulée « Les outils IA ne fonctionnent pas »”claude: command not found”
Section intitulée « ”claude: command not found” »L’image est peut-être obsolète. Récupérez la dernière version et redémarrez :
docker compose pulldocker compose up -dpodman-compose pullpodman-compose up -dClaude affiche “Not logged in”
Section intitulée « Claude affiche “Not logged in” »Le point d’entrée initialise ~/.claude.json avec les indicateurs d’intégration. S’il est manquant :
echo '{"hasCompletedOnboarding": true}' > ~/.claude.jsonClaude affiche “Invalid API key”
Section intitulée « Claude affiche “Invalid API key” »Vérifiez quelle valeur est effectivement définie :
echo "$ANTHROPIC_API_KEY"Causes courantes :
- Clé proxy LiteLLM manquante ou invalide — si vous utilisez le mode proxy, assurez-vous que
LITELLM_API_KEYdans.envcontient les identifiants proxy corrects, puis redémarrez le conteneur pour que le point d’entrée puisse dériverANTHROPIC_API_KEY. - Incompatibilité entre jeton OAuth et mode proxy — utilisez exactement un seul mode d’authentification. Si
CLAUDE_CODE_OAUTH_TOKENest défini, il prend le pas sur le mode proxy LiteLLM.
Les requêtes API échouent avec 401
Section intitulée « Les requêtes API échouent avec 401 »Vérifiez que votre clé API est correctement définie :
echo "$ANTHROPIC_API_KEY"Vérifiez qu’elle fonctionne en effectuant un appel direct à votre fournisseur.
Claude dit “model not found”
Section intitulée « Claude dit “model not found” »Le modèle est déterminé par votre fournisseur et votre clé API. Consultez la documentation de votre fournisseur pour connaître les modèles disponibles.
GitHub CLI
Section intitulée « GitHub CLI »”gh: not authenticated”
Section intitulée « ”gh: not authenticated” »Le CLI gh nécessite une variable d’environnement GH_TOKEN. Ajoutez-la à votre fichier .env :
GH_TOKEN=ghp_your-token-hereCréez un jeton sur github.com/settings/tokens. Les jetons à granularité fine (recommandés) ou les jetons classiques avec le scope repo fonctionnent tous les deux. Redémarrez le conteneur après avoir mis à jour .env.
Le clonage git HTTPS échoue avec 401
Section intitulée « Le clonage git HTTPS échoue avec 401 »Quand GH_TOKEN est défini, le point d’entrée exécute gh auth setup-git pour configurer l’assistant d’identification git pour HTTPS. Si les opérations HTTPS échouent :
- Vérifiez que le jeton est valide :
gh auth status - Vérifiez que l’assistant d’identification est configuré :
git config --global credential.helper - Redémarrez le conteneur pour relancer le point d’entrée
SSH vs HTTPS
Section intitulée « SSH vs HTTPS »Les deux méthodes d’authentification peuvent coexister dans le conteneur :
- SSH (
SSH_PRIVATE_KEYdans.env) — utilise les URLgit@github.com:. Requis si votre organisation impose SSH. - HTTPS (
GH_TOKENdans.env) — utilise les URLhttps://github.com/. Configuration plus simple, pas de gestion de clés.
Si les deux sont configurés, git utilise le protocole correspondant à l’URL du dépôt distant. Pour basculer un clone existant :
# SSH vers HTTPSgit remote set-url origin https://github.com/owner/repo.git
# HTTPS vers SSHgit remote set-url origin git@github.com:owner/repo.gitProblèmes de permissions
Section intitulée « Problèmes de permissions »”Permission denied” sur /workspace ou /home
Section intitulée « ”Permission denied” sur /workspace ou /home »sudo chown -R $(id -u):$(id -g) /workspace ~npm install échoue avec EACCES
Section intitulée « npm install échoue avec EACCES »Le point d’entrée configure automatiquement un préfixe global npm accessible en écriture à l’utilisateur dans ~/.npm-global, de sorte que les commandes npm install -g à l’exécution devraient fonctionner sans sudo. Si vous rencontrez toujours des erreurs EACCES, appliquez le correctif manuellement :
mkdir -p ~/.npm-globalnpm config set prefix ~/.npm-globalexport PATH="$HOME/.npm-global/bin:$PATH"Problèmes de build
Section intitulée « Problèmes de build »Le build prend très longtemps
Section intitulée « Le build prend très longtemps »Le premier build télécharge l’image de base (~1 Go). Les builds suivants utilisent le cache. Si c’est lent à chaque fois :
docker builder prunepodman builder prune“No space left on device”
Section intitulée « “No space left on device” »docker system prune -a --volumespodman system prune -a --volumesAttention : Cela supprime tous les conteneurs, images et volumes inutilisés — pas uniquement ceux de ce projet.
Impossible d’accéder à Internet depuis l’intérieur du conteneur
Section intitulée « Impossible d’accéder à Internet depuis l’intérieur du conteneur »ping -c 1 8.8.8.8nslookup google.comcurl -I https://github.comSi le DNS échoue, ajoutez dans /etc/docker/daemon.json sur l’hôte :
{ "dns": ["8.8.8.8", "8.8.4.4"]}Puis redémarrez Docker.
Si le DNS échoue, configurez le DNS à l’intérieur de la machine Podman :
podman machine sshsudo sh -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'exitOu ajoutez les paramètres DNS dans ~/.config/containers/containers.conf sur l’hôte :
[containers]dns_servers = ["8.8.8.8", "8.8.4.4"]Puis redémarrez Podman : podman machine stop && podman machine start.
Affichage distant (noVNC)
Section intitulée « Affichage distant (noVNC) »Écran noir dans noVNC
Section intitulée « Écran noir dans noVNC »Xvfb n’a peut-être pas démarré. Vérifiez à l’intérieur du conteneur :
ps aux | grep XvfbS’il ne tourne pas, vérifiez que ENABLE_VNC n’est pas défini à false et redémarrez le conteneur.
Erreur “Cannot open display” ou “No display”
Section intitulée « Erreur “Cannot open display” ou “No display” »La variable d’environnement DISPLAY n’est peut-être pas définie. Vérifiez :
echo "$DISPLAY"Elle devrait être :99. Si elle est vide, ajoutez DISPLAY=:99 à votre .env ou devcontainer.json et redémarrez.
Connexion refusée sur le port 6080
Section intitulée « Connexion refusée sur le port 6080 »noVNC ne tourne peut-être pas. Vérifiez à l’intérieur du conteneur :
ps aux | grep -E 'novnc|websockify'S’il ne tourne pas, vérifiez que ENABLE_VNC est à true (valeur par défaut) et consultez les journaux du conteneur :
docker compose logs dev | grep -i vncpodman-compose logs dev | grep -i vncLe port 6080 est déjà utilisé
Section intitulée « Le port 6080 est déjà utilisé »Changez le port hôte dans docker-compose.yml :
ports: - "127.0.0.1:16080:6080"Chrome DevTools MCP
Section intitulée « Chrome DevTools MCP »Le débogage distant Chrome ne répond pas
Section intitulée « Le débogage distant Chrome ne répond pas »L’instance Chrome partagée devrait tourner sur le port 9222. Vérifiez à l’intérieur du conteneur :
# Chrome tourne-t-il ?curl http://localhost:9222/json/version
# Vérifier les journaux Chromecat ~/.local/share/chrome-browser/chrome.log
# Vérifier le lien symboliquels -la /opt/google/chrome/chrome
# Redémarrer Chrome manuellement. /usr/local/lib/chrome-browser.shstart_chrome_browserSi le lien symbolique est manquant, récupérez la dernière image et redémarrez le conteneur.
Erreur de verrouillage du profil navigateur
Section intitulée « Erreur de verrouillage du profil navigateur »Avec l’architecture de navigateur partagé, les erreurs de verrouillage de profil ne devraient pas se produire. Si vous en rencontrez une, un processus Chrome obsolète détient peut-être le verrou :
# Arrêter tout processus Chrome obsolètepkill -f 'chrome.*remote-debugging-port' || true
# Supprimer le fichier de verrouillagerm -f ~/.cache/chrome-devtools-mcp/chrome-profile/SingletonLock
# Redémarrer Chrome. /usr/local/lib/chrome-browser.shstart_chrome_browserOutils chrome-devtools-mcp en double
Section intitulée « Outils chrome-devtools-mcp en double »Le serveur chrome-devtools-mcp est désormais enregistré globalement dans ~/.claude/settings.json. Si vous avez un .mcp.json par dépôt qui l’enregistre également, vous verrez des outils en double. Supprimez l’entrée chrome-devtools-mcp des fichiers .mcp.json par dépôt :
# Vérifier la configuration par dépôtcat .mcp.jsonSupprimez la clé chrome-devtools-mcp de tout .mcp.json par dépôt pour utiliser l’enregistrement global.
Tout réinitialiser
Section intitulée « Tout réinitialiser »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 -dCela détruit toutes les données dans les volumes. Vous devrez re-cloner les dépôts et reconfigurer les outils.