
Dans les chapitres précédents, vous avez récupéré le code source du projet sur GitHub, déployé PostgreSQL dans Docker, configuré VS Code avec ESLint et validé votre installation. Votre poste de travail est prêt, mais vous ferez inévitablement face à des pannes d'environnement : port bloqué, conteneur arrêté ou variable manquante.
Plutôt que d'essayer des modifications au hasard ou de tout réinstaller, vous allez apprendre à diagnostiquer méthodiquement les erreurs et à mobiliser GitHub Copilot comme assistant pour vous débloquer en autonomie.
Face à une application qui refuse de démarrer, ne supprimez pas le projet. Une démarche de diagnostic professionnelle repose sur trois étapes :
Lire et interpréter les messages d'erreur : Examinez la dernière ligne de la trace d'erreur (stack trace) dans la console Node.js ou interrogez les logs du conteneur avecdocker compose logs db.
Isoler le composant défaillant : Déterminez quel niveau de la chaîne applicative est touché :
Node.js / npm : Erreur de syntaxe, module manquant dansnode_modulesou scripts npm.
Docker / Conteneur : Service PostgreSQL arrêté, conflit de conteneur ou volume mal monté.
Variables d'environnement : Fichier.envabsent ou contenant des identifiants erronés.
Réseau local : Port3000ou5432déjà occupé sur la machine hôte.
Formuler et tester des hypothèses ciblées : Modifiez un seul paramètre à la fois pour identifier la cause exacte.

Au cours de la configuration d'un poste de travail web, cinq dysfonctionnements se produisent de manière récurrente :
1. Port déjà utilisé : si un PostgreSQL est déjà installé et lancé sur votre machine, le port 5432 est pris et docker compose up échoue avec Bind for 0.0.0.0:5432 failed: port is already allocated (ou address already in use ). De même, si un autre programme occupe le port 3000, npm start échoue avec EADDRINUSE .
Solution : arrêtez le programme qui occupe le port, ou publiez PostgreSQL sur un autre port dans docker-compose.yml (ex : "5433:5432") et indiquez DB_PORT=5433 dans .env .
2. Conteneur PostgreSQL arrêté : Un conteneur s'arrête si le volume est corrompu ou si des variables manquent.
Solution : Contrôlez l'état avecdocker compose pset lisez les logs avecdocker compose logs db.
3. Fichier .env mal configuré : Si l'application affichepassword authentication failed, les identifiants ne correspondent pas.
Solution : Alignez les clésDB_USERetDB_PASSWORDdu fichier.envavecPOSTGRES_USERetPOSTGRES_PASSWORD.
Attention : si vous modifiez POSTGRES_PASSWORD après le premier démarrage, PostgreSQL conserve l'ancien mot de passe stocké dans le volume ; il faut alors réinitialiser la base ( docker compose down -v ).
4. Dossier node_modules incomplet : Après ungit pull, votre dossier local ne contient pas les nouvelles dépendances.
Solution : Exécuteznpm installpour synchroniser vos modules avecpackage.json.
5. Services démarrés dans le mauvais ordre : Si vous lanceznpm startavant que PostgreSQL ne soit prêt, la connexion échoue.
Solution : Attendez le messagedatabase system is ready to accept connectionsdans les logs Docker.
Comment libérer un port bloqué sur ma machine ?
Sur Linux/macOS, utilisez lsof -i :5432 puis kill -9 <PID> .
Sur Windows, utilisez netstat -ano | findstr :5432 puis taskkill /PID <PID> /F .

Lorsque les contrôles de base ne suffisent pas, GitHub Copilot permet d'accélérer votre diagnostic. Pour obtenir une aide pertinente, fournissez-lui un contexte technique complet.
1. Formuler un prompt de diagnostic structuré
Un bon prompt de dépannage doit comporter quatre éléments :
Le symptôme précis : Le message d'erreur exact copié depuis le terminal.
Le composant concerné : Précisez la technologie (Node.js, Docker Compose, PostgreSQL).
Les fichiers de configuration : Extrait dedocker-compose.ymlou.env(sans secrets).
L'action déjà tentée : Indiquez ce que vous avez contrôlé.
Exemple de prompt efficace :
Je tente de démarrer mon application Node.js avec npm start, mais j'obtiens l'erreur : Error: connect ECONNREFUSED 127.0.0.1:5432. Mon fichier docker-compose.yml définit PostgreSQL sur le port 5432 et mon .env contient DB_HOST=localhost. Mon conteneur docker compose ps affiche Exited (1). Quel est le problème et comment le résoudre ?
2. Conserver une posture critique face aux réponses de l'IA
GitHub Copilot propose des hypothèses statistiques. Il peut suggérer des commandes obsolètes :
Ne copiez jamais aveuglément un script bash suggéré par l'IA.
Analysez l'explication fournie avant d'exécuter une commande.
Vérifiez que la solution respecte l'isolation de votre environnement conteneurisé.
3. Documenter l'intervention dans le journal d'IA
Renseignez un journal d'intervention technique pour tracer l'usage de l'IA. Notez-y l'erreur initiale, le prompt soumis, l'analyse de la réponse et la commande finale validée.
Dans cette vidéo tutoriel, vous allez observer la résolution en direct d'un conflit de port réseau et d'un arrêt de conteneur en vous appuyant sur GitHub Copilot. L'objectif est d'apprendre à formuler un prompt de diagnostic explicite, à évaluer la réponse de l'IA et à consigner le correctif dans votre journal.
Voici les étapes clés présentées dans cette démonstration :
Constat du blocage dans le terminal : Analyse de l'erreurEADDRINUSE: address already in use :::5432lors du lancement de Docker Compose.
Rédaction et soumission du prompt dans Copilot Chat : Transmission de la trace d'erreur, du fichierdocker-compose.ymlet du contexte du projet.
Évaluation critique de la proposition de Copilot : Identification de la solution recommandée (modification du port externe vers5433dansdocker-compose.ymlet.env).
Application du correctif et vérification : Modification des fichiers, exécution dedocker compose up -det confirmation de l'accès à la BDD.
Saisie du journal d'intervention IA : Renseignement de la grille de suivi retraçant le diagnostic et la validation technique.
En résumé, ce screencast vous montre comment transformer un message d'erreur en une résolution méthodique guidée par l'IA. Vous disposez maintenant des compétences pour traiter l'activité pratique du chapitre.

Vous tentez de lancer l'application web de la librairie. Un PostgreSQL est déjà installé sur votre poste pour un autre projet, et vous ne pouvez pas l'arrêter. La commande docker compose up -d échoue ; une fois ce premier problème contourné, l'application Node.js ne parvient toujours pas à se connecter à sa base de données.
Identifiez l'origine des deux dysfonctionnements dans vos logs.
Soumettez un prompt de diagnostic complet à GitHub Copilot pour obtenir des pistes de résolution.
Appliquez les correctifs nécessaires pour rendre l'application fonctionnelle surhttp://localhost:3000.
Complétez le journal de diagnostic de l'IA retraçant votre intervention.
La résolution de pannes d'environnement repose sur une démarche méthodique : lire les logs, isoler le composant défaillant et tester des hypothèses ciblées.
Les erreurs fréquentes (ports déjà occupésEADDRINUSE, conteneurs arrêtés, variables.envdésalignées ou modules npm manquants) se résolvent par des contrôles ciblés.
GitHub Copilot agit comme un assistant de diagnostic performant à condition de lui fournir un prompt contextualisé incluant les logs et les fichiers de configuration.
La tenue d'un journal de diagnostic d'IA permet de documenter les interventions techniques et d'exercer un contrôle critique sur les solutions proposées par l'IA.
Félicitations ! Vous maîtrisez désormais l'intégralité de la chaîne de configuration et de dépannage de votre environnement de développement web. Avant de terminer ce cours, je vous invite à tester vos connaissances avec le quiz juste après.