Таким образом, я потратил последние два дня (и ночи) безрезультатно, пытаясь настроить отладчик в VS Code для отладки моего приложения узла, работающего в Docker. У меня есть 3 дня опыта работы с Docker, и до того, как кто-то с действительно отличными рефлексами пометит его как дубликат, я уже прочитал каждый пост / ответ в блоге с первой страницы результатов поиска Google (это правда!), И я понятия не имею, куда еще я могу пойти. Я в слезах. Пожалуйста, взгляните и укажите на глупую ошибку, которую я, вероятно, совершаю. Вот мои соответствующие настройки:
package.json:
"scripts": {
"start": "node .",
"lint": "eslint **/*.js",
"dev": "nodemon --inspect-brk=0.0.0.0:9229 --watch src --exec node -r dotenv/config ."
},
(это --inspect-brk=0.0.0.0:9229
было добавлено мною по совету от этого отчета о проблеме)
Dockerfile:
FROM node:8-alpine
ENV NODE_ENV production
RUN apk --update add git ffmpeg imagemagick ghostscript poppler-utils libpng-dev
WORKDIR /app
ADD . /app
RUN npm i
ENTRYPOINT node .
Вот конфигурация запуска
{
"type": "node",
"request": "attach",
"name": "Docker: Attach to Node",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app",
"protocol": "inspector"
},
А вот файл docker-compose:
version: "3"
services:
lil-upload:
environment: #redacted
image: 'pdffix'
ports:
- '8080:64544'
- '9229:9229'
restart: always
Как я понимаю, мне нужно открыть порт из докера, к которому будет подключен отладчик (в данном случае 9229), и когда я запусту отладчик, он подключится там. Но каждый раз, когда я продолжаю получать эту ошибку Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: read ECONNRESET)
И если изменить конфигурацию в моем launch.json на launch
вместо attach
, чтобы я мог напрямую запустить приложение в режиме отладки, я получу Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED 127.0.0.1:9229)
Я действительно понятия не имею, что еще мне нужно сделать, чтобы эта чертова штука сработала.