我将NodeJS应用程序移动到docker,我遇到的最后一个问题是调试应用程序。
我的设置:OSx,boot2docker,docker(基于centos),WebStorm作为IDE和调试器。
这是我现在所拥有的:
从docker转发5858到boot2docker:
docker run -p 5858:5858 ...
从boot2docker转发5858端口到主机:
VBoxManage controlvm boot2docker-vm natpf1 "boot2docker5858,tcp,127.0.0.1,5858,,5858"
这同样的设置可以将我的应用程序端口引导到主机。 另一方面,端口5858,如果从码头工人集装箱外部进入,则似乎没有反应 在docker容器内部工作正常。
知道可以做些什么来使这项工作?
答案 0 :(得分:0)
好吧,我终于明白了。
看起来,节点只侦听127.0.0.1:5858。
为了让它在所有端口上侦听,我在docker上安装了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