docker - 如何在 docker 容器中运行 grunt-connect

标签 docker boot2docker grunt-contrib-connect

我让 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 之外工作得很好。 我有一种感觉,这与在本地主机上运行 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

目前容器只监听本地接口(interface)上的内部 连接。使用 0.0.0.0 将告诉它监听所有接口(interface),包括 Docker 主机连接到的接口(interface)。

关于docker - 如何在 docker 容器中运行 grunt-connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299980/

相关文章:

docker - DOCKER_TLS_VERIFY 和 DOCKER_CERT_PATH 变量有什么作用?

Docker Standard_init_linux.go :207: exec user process caused “no such file or directory”

Windows guest 虚拟机中的 Docker

linux - 在 RHEL 上安装 Docker 时出现错误

docker - 来自守护进程 : rpc error: code = 2 desc = name conflicts with an existing object 的错误响应

node.js - 当主机为 0.0.0.0 时 grunt-connect 不起作用

cors - grunt-contrib-connect 中间件 CORS 解决方案,具有 keepalive true

node.js - 如何在防火墙后面配置 grunt-connect-proxy?

docker - 使用 docker Go 客户端并行构建 docker 镜像

java - 如何在docker内部获取kafka的解析网络?