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已经收到了请求,但并没有将其路由到正在运行的应用程序。
- 一段时间你的docker集装箱运行你的IP地址。 你可以通过运行这个命令
docker info
来检查它 - 第二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