vscode felsök typescript kompilerad i docker-behållare obesluten brytpunkt
De flesta felsökningsrecepten för VSCode + Typescript + Docker som jag har sett antar att man monterar dist/-mappen som en container-volym. Jag monterar endast src/-mappen och kompilerar Typescript inuti containern, och jag är inte riktigt säker på hur det skulle påverka min launch.json-konfiguration. Saknar jag något i min konfiguration med tanke på att jag bara kompilerar inuti containern? Kan VSCode ens stödja detta? Dokumentationen är inte särskilt tydlig om det.
Mitt npm start-skript:
{
"scripts": {
"start": "tsc --build tsconfig.json && tsc-watch --onSuccess \"node --inspect=0.0.0.0:9229 ./dist/index.js\""
}
}
Min tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist",
"allowJs": true,
"esModuleInterop": true,
"incremental": true,
"sourceMap": true,
"target": "es5"
},
"include": [ "./src/**/*" ],
"exclude": [ "node_modules" ]
}
Min launch.json debugger-konfiguration:
{
"version": "0.2.0",
"configurations": [
{
"name": "Docker: Attach to Node",
"type": "pwa-node",
"request": "attach",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/path/in/container",
"restart": true,
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**"
],
"skipFiles": [
"<node_internals>/**/*.js"
]
}
]
}
När jag startar debuggern verkar den koppla upp sig (jag får container-loggar i debugkonsolen), men sedan är mina brytpunkter alltid obundna, så jag är inte säker på om det är ett problem relaterat till min mount/compile-konfiguration, eller om det är okej men att VSCode helt enkelt inte kan binda brytpunkterna.
All hjälp uppskattas mycket!
Svar #1
Exponerade du port 9229 från din docker-container? Här är ett exempel på min docker-compose-fil.
api:
container_name: api
hostname: my_cool_api
env_file:
- .env
depends_on:
- postgres
build:
context: ./api
dockerfile: Dockerfile.dev
ports:
- 3005:3005
- 9229:9229
restart: always
volumes:
- ./api:/api
