vscode feilsøking typescript kompilert i docker-beholder ubundet breakpoint
De fleste feilsøkingsoppskriftene for VSCode + Typescript + Docker som jeg har sett, antar at man monterer dist/-mappen som et container-volum. Jeg monterer kun src/-mappen og kompilerer Typescript inne i containeren, og jeg er ikke helt sikker på hvordan det vil påvirke min launch.json-konfigurasjon. Går jeg glipp av noe i konfigurasjonen min gitt at jeg kun kompilerer inne i containeren? Kan VSCode i det hele tatt støtte dette? Dokumentasjonen er ikke superklar på 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-konfig:
{
"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 jeg starter feilsøkeren, ser det ut til at den kobler til (jeg får containerlogger i feilsøkingkonsollen), men deretter er alltid mine brytepunkter ubundet, så jeg er ikke sikker på om det er et problem relatert til min mount/kompilering-oppsett, eller om det er greit, men VSCode bare ikke klarer å binde brytepunktene.
All hjelp setter jeg stor pris på!
Svar #1
Eksponerte du port 9229 fra din Docker-container? Her er et eksempel 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
