带有Angular2应用程序和NodeJ的Docker容器未响应 [英] Docker container with Angular2 app and NodeJs does not respond

查看:70
本文介绍了带有Angular2应用程序和NodeJ的Docker容器未响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过angular-cli创建了新的Angular2应用程序,并在Docker中运行它.但是我无法从本地主机连接它.

I created new Angular2 app by angular-cli and run it in Docker. But I cannot connect it from localhost.

首先,我在本地计算机上初始化应用程序:

At first I init app on my local machine:

ng new project && cd project &&  "put my Dockerfile there" && docker build -t my-ui .

我通过命令启动它:

docker run -p 4200:4200 my-ui

然后尝试在我的本地主机上

Then try on my localhost:

curl localhost:4200

并接收

卷曲:(56)接收失败:对等重置连接

curl: (56) Recv failure: Connection reset by peer

然后,我尝试切换到运行中的容器( docker exec -ti container-id bash )并运行curl localhost:4200,它可以工作.

Then, I tried switch into running container (docker exec -ti container-id bash) and run curl localhost:4200 and it works.

我还尝试使用--net = host param运行容器:

I also tried to run container with --net= host param:

docker run --net=host -p 4200:4200 my-ui

它有效.问题是什么?我也尝试在守护程序模式下运行容器,但并没有帮助.谢谢.

And it works. What is the problem? I also tried to run container in daemon mode and it did not helped. Thanks.

我的Dockerfile

My Dockerfile

FROM node

RUN npm install -g angular-cli@v1.0.0-beta.24 && npm cache clean && rm -rf ~/.npm

RUN mkdir -p /opt/client-ui/src
WORKDIR /opt/client-ui  

COPY package.json /opt/client-ui/
COPY angular-cli.json /opt/client-ui/
COPY tslint.json /opt/client-ui/

ADD src/ /opt/client-ui/src

RUN npm install
RUN ng build --prod --aot

EXPOSE 4200

ENV PATH="$PATH:/usr/local/bin/"    
CMD ["npm", "start"]

推荐答案

似乎您使用ng serve运行开发服务器,并且默认情况下它在循环接口上启动(仅在本地主机上可用).您应该提供特定的参数:

It seems that you use ng serve to run development server and it by default starts on loop interface (available only on localhost). You should provide specific parameter:

ng serve --host 0.0.0.0

在所有界面上运行它.

这篇关于带有Angular2应用程序和NodeJ的Docker容器未响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆