Debugging of Node.js in Docker container
Nach langer Zeit ein kleiner Quicktip um Node.js Apps in Docker Containern einfach und schnell zu debuggen. Als Debugger hat sich die IDE VS Code bewährt.
Um die App im Container im Debug Mode zu starten, benutze das Flag --inspect
. Allerdings ist der interne Localhost des Containers nicht von außen erreichbar, wenn dieser nicht nach außen exposed wird.
Das ganze Setup erreichst du mit den folgenden Steps:
- Expose den Port
5858
vom Container, entweder perdocker run -p 5858:5858 IMAGENAME
oder per Eintrag in deinem Docker-Compose File - Starte die Node.js App mit dem Command
node(mon) --inspect=0.0.0.0:5858 index.js
-
Attache VS Code mit folgender Konfiguration:
{ "type": "node", "request": "attach", "name": "Attach", "port": 5858, "address": "127.0.0.1", "restart": true, "protocol": "inspector", "localRoot": "${workspaceRoot}/pfadzudeinemProjekt", "remoteRoot": "/src/", }
Jetzt hängt sich der VS Code debugger an den Node Prozess und du solltest debuggen können.
Cheers