Daily Dispatch 27 - Debugging Issues
So hello, it’s been a while, and I haven’t being keeping up with my daily dispatches, or maybe my days are longer than yours. Relativity man, who knows?
So I was playing around with a Node.js (nodejs.org) project hosting it using Docker alongside a Postgres database.
And I was all happy and dandy until I wanted to debug an error on VSCode.
And I couldn’t.
So I went far and wide, talked with many friends (I wish), and came across this cool article Debugging uncompiled Typescript code running on a Docker container | by Mitsuhide Ohi | Medium.
This article pointed me towards the right direction, but I had to add a few things.
1 – First of all, I didn’t need to add a debug
script to my package.json
. I merely replaced my --inspect
flag with itself + server_address:port --inspect=0.0.0.0:9229
.
2 – I did add the next line on my tsconfig.json
.
"sourceMap": true
3 — Here’s where things differ a lot from the article, my vscode launch.json configuration didn’t use the sourceMapPathOverrides
(it did nothing for me).
Instead I replaced it with these two cool properties ( remoteRoot
and localRoot
):
{ "name": "Docker Node.js Launch", "type": "node", "request": "attach", "port": 9229, "address": "localhost", "skipFiles": [ "<node_internals>/**" ], "remoteRoot": "/usr/app", "localRoot": "${workspaceFolder}", }
4 – Now to the docker-compose.yml
file, I added to my mainApp service the docker port for debugging
ports: - 3000:3000 # my previous port - 9229:9229 # docker debugger port
5 – After all that, I had to run docker-compose up -d --build --force-recreate
since I changed the docker-compose.yml
file.
And then BOOM! It worked.