Точка останова установлена, но еще не привязана к коду Visual Studio для докернизированного процесса узла - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь использовать отладчик в Visual Studio Code на MacOS Catalina для приложения узла. Я создал очень простой пример для иллюстрации моего случая.

index. js

require('http').createServer( (request, response) => {
  response.writeHead(200, {'Content-Type': 'text/plain'})
  response.end('Hello World\n');
  response.end();
}).listen(3000);

Dockerfile

FROM node:12.14.0-alpine 
COPY . /src
CMD ["node","--inspect=0.0.0.0", "src/index.js"]

Я создаю Dockerfile

docker build . -t debugtest

и затем запускаю его

 docker run -p 3000:3000 -p 9229:9229 debugtest

Я могу получить доступ http://localhost: 3000 / .

Я установил точку останова в индексе. js.

enter image description here Затем установите цель отладчика в Visual Studio Code

{
  "version": "0.2.0",
  "configurations": [
  {
    "type": "node",
    "request": "attach",
    "name": "Attach",
    "port": 9229,
    "skipFiles": [
      "<node_internals>/**"
    ]
  }
  ]
}

Теперь, когда я запускаю отладчик в визуальном коде, красная точка точки останова исчезает и Появляется «Точка останова установлена, но еще не привязана».

enter image description here

Я видел этот вопрос в разных местах, но ни одно из решений не помогло. Когда я запускаю процесс узла за пределами docker node --inspect index.js, он работает без помех.

Я использую версию 1.41.1 кода Visual Studio и docker 2.1.0.5.

1 Ответ

1 голос
/ 23 января 2020

Оказывается, я пропустил атрибут remoteRoot в launch.json. Ниже работает.

запуск. json

{
  "version": "0.2.0",
  "configurations": [
  {
    "type": "node",
    "request": "attach",
    "name": "Attach",        
    "port": 9229,
    "remoteRoot": "/src/",
    "skipFiles": [
      "<node_internals>/**"
    ]
  }
  ]
}
...