【发布时间】:2015-04-02 17:05:06
【问题描述】:
我让 Grunt 在 docker 容器中的 localhost:8080 上运行节点连接 (grunt-contrib-connect) Web 服务器。我使用以下命令运行容器:
$ docker run --rm -it -p 8080:8080 js1972/yeoman:v3.
在我的容器中,我使用grunt develop 运行 grunt connect 任务。
我在 Mac 上使用 boot2docker。 boot2docker ip 说主机 ip 是 192.168.59.103 所以我应该在浏览器中使用http://192.168.59.103:8080 访问连接服务器。
但是这不起作用,我只是得到一个 safari 无法连接到服务器的消息。 (请注意,当我使用 docker 网站示例中的简单 Python Web 服务器时,端口转发工作得很好。)
知道这里有什么问题吗?同样的过程在 docker 之外运行得很好。 我感觉这与在 localhost 上运行 Connect 有关。我尝试了 --add-hosts 和 -p localhost:8080:8080 的各种组合,等等都无济于事......
如果有帮助,这是我的 docker 文件和 gruntfile: https://dl.dropboxusercontent.com/u/7546923/Dockerfile https://dl.dropboxusercontent.com/u/7546923/Gruntfile.js
Rgds,杰森。
【问题讨论】:
-
尝试将连接中的“localhost”更改为“0.0.0.0”
-
感谢阿德里安 - 这成功了,我从来没有想过它。现在需要阅读 0.0.0.0、localhost 和 127.0.0.1 之间的区别。 ;-)
-
酷。 0.0.0.0 只监听所有网络接口。 127.0.0.1 只监听本地环回接口 IIRC。如果可以,我会添加答案。
标签: docker boot2docker grunt-contrib-connect