Настройка отладки узла в Docker - PullRequest
0 голосов
/ 02 ноября 2018

Таким образом, я потратил последние два дня (и ночи) безрезультатно, пытаясь настроить отладчик в 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) Я действительно понятия не имею, что еще мне нужно сделать, чтобы эта чертова штука сработала.

1 Ответ

0 голосов
/ 02 ноября 2018

Я наконец понял это. Будучи идиотом и не зная свойства ENTRYPOINT в Dockerfile, я заставлял сценарий запускать сценарий по умолчанию вместо запуска dev, который мне нужен. Просто исправил ENTRYPOINT и сделал npm run dev, и весь мир снова стал солнечным светом и радугой. Спасибо всем, кто не ответил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...