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.