Я чувствую, что близок к тому, чтобы docker-compose и node-spector прекрасно работали вместе, но мне бы хотелось, чтобы кто-нибудь показал мне, как они настраивают свой файл docker-compose, а также объяснил, как он работает.
Вот как выглядит мой файл compose.yml только с приложением узла:
app:
image: my-node-app
volumes:
- '~/mycode:/app/code'
ports:
- "3000:3000"
command: /bin/bash
Также обратите внимание, что я использую Docker для Mac. (Хотя я не думаю, что это должно сильно измениться..)
Я нашел пару руководств по тому, как это сделать, но информация была либо устаревшей, либо казалась неполной. Вот два основных подхода (ни один из них еще не работал у меня):
1) Откуда: https://github.com/seelio/node-spector-docker/issues/1
app:
image: my-node-app
ports:
- "3000:3000"
command: /bin/bash
volumes_from:
- code
debugger:
image: node-debug
depends_on:
- app
# `service` instead of `container` for an easier cold start
network_mode: 'service:app'
volumes_from:
- code
code:
image: node
volumes:
- '~/mycode:/app/code'
2)
и из: https://keylocation.sg/our-tech/debugging-nodejs-in-docker-using-node-spector :
debugger:
container_name: debugger
network_mode: host
extends:
service: base
volumes:
- /app/containers/debugger:/app/container
Требовалась одна небольшая хитрость: добавление сопоставления порта 5858 для контейнера node-app, чтобы Node Inspector мог видеть его как порт 5858 на хосте:
node-app:
ports:
- "5858:5858" # Port needs to be mapped to host so that debugger container can access it
node-inspector
. - person mscdex   schedule 26.09.2016node --inspect --debug-brk foo.js
, и он отобразит URL-адрес на стандартном выводе, который вы посещаете в Chrome. - person mscdex   schedule 26.09.2016