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