Node.js Web应用程序在Docker堆栈中没有正确运行

我有一个用Node.js编写的Web应用程序,我试图进入Docker。 用docker run -p 80:80 image就好了; 我能够访问它托pipe的网页。 但是,当我尝试在堆栈中运行它时,我无法访问该页面,并且Chrome只是永远坐在“等待本地主机…”。

Dockerfile:

 FROM readytalk/nodejs WORKDIR /app ADD . /app RUN npm i EXPOSE 80 CMD [] ENTRYPOINT ["/nodejs/bin/npm", "start"] 

泊坞窗,compose.yml:

 version: "3" services: web: image: image_name deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet: 

任何帮助将不胜感激。

编辑:增加了一些日志logging,似乎HTTP请求是从来没有实际使它到Node.js应用程序。 看起来Docker已经收到了请求,但并没有将其路由到正在运行的应用程序。

  1. 一段时间你的docker集装箱运行你的IP地址。 你可以通过运行这个命令docker info来检查它
  2. 第二select

去terminal和写

在窗口中

 ipconfig 

并查看首选IP,然后使用指定端口访问具有该IP的容器

在Ubuntu中

 ifconfig 

希望这将解决您的问题,并尝试使用127.0.0.1:port访问

你可以查看这个幻灯片,显示并运行hello world + docker

搬运工节点问候世界的应用程序

我会推荐使用这个Docker文件。

Node_DockerFile

 FROM alpine RUN apk update && apk upgrade RUN apk add nodejs RUN mkdir -p /app ADD app/package.json /app WORKDIR /app/ ENV HOME /app ENV NODE_ENV development RUN npm install ADD app /app EXPOSE 3000 CMD npm start