2015-06-23 3 views
0

Я перемещаю приложение NodeJS на докер, и последняя проблема, с которой я столкнулась, - отладка приложения.Отладка приложения NodeJS внутри Docker

Моя настройка: OSx, boot2docker, docker (на основе centos), WebStorm как IDE и отладчик.

Вот что у меня есть сейчас:
Forward 5858 от докер к boot2docker:

docker run -p 5858:5858 ... 

Forward 5858 порт от boot2docker к хосту:

VBoxManage controlvm boot2docker-vm natpf1 "boot2docker5858,tcp,127.0.0.1,5858,,5858" 

Эта же установка работает в предисловие мое приложение портов на хост-машину. С другой стороны, порт 5858, похоже, не реагирует на доступ к внешней стороне контейнера докера.
Внутри контейнера докера он работает отлично.

Любая идея, что можно сделать, чтобы сделать эту работу?

ответ

0

Ну, я, наконец, понял это.
Как кажется, узел слушает только на 127.0.0.1:5858.

Чтобы он прослушивал все порты, я установил HAProxy на докере, который пересылает запросы от 0.0.0.0:5859 до 127.0.0.1:5858.

Вот конфигурация HAProxy, если когда-либо нуждается кто-нибудь:

listen l1 0.0.0.0:5859 
    mode tcp 
    timeout client 180000 
    timeout server 180000 
    timeout connect 4000 
    server srv1 127.0.0.1:5858 

И чем добавить к вашему Dockerfile:

COPY haproxy.conf haproxy.conf 
RUN haproxy -D -f /haproxy.conf