Node.js web应用程序在Docker堆栈中未正常运行

Node.js web应用程序在Docker堆栈中未正常运行,node.js,docker,docker-compose,Node.js,Docker,Docker Compose,我有一个用Node.js编写的web应用程序,我正试图进入Docker。使用dockerrun-p80:80 image运行映像效果很好;我可以访问它托管的网页。然而,当我尝试在堆栈中运行它时,我无法访问该页面,Chrome永远坐在“等待localhost…”位置 Dockerfile: FROM readytalk/nodejs WORKDIR /app ADD . /app RUN npm i EXPOSE 80 CMD [] ENTRYPOINT ["/nodejs/bin/npm

我有一个用Node.js编写的web应用程序,我正试图进入Docker。使用
dockerrun-p80:80 image运行映像
效果很好;我可以访问它托管的网页。然而,当我尝试在堆栈中运行它时,我无法访问该页面,Chrome永远坐在“等待localhost…”位置

Dockerfile:

FROM readytalk/nodejs

WORKDIR /app
ADD . /app

RUN npm i

EXPOSE 80

CMD []
ENTRYPOINT ["/nodejs/bin/npm", "start"]
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:
docker compose.yml:

FROM readytalk/nodejs

WORKDIR /app
ADD . /app

RUN npm i

EXPOSE 80

CMD []
ENTRYPOINT ["/nodejs/bin/npm", "start"]
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:
任何帮助都将不胜感激

编辑:添加了一些日志记录,似乎HTTP请求从未真正发送到Node.js应用程序。Docker似乎已收到请求,但尚未将其路由到正在运行的应用程序

  • 有时,docker容器会运行您的IP地址。 您可以通过运行此命令来检查它
    docker info
  • 第二选项
  • 转到终端并写入

    在窗口中

    ipconfig
    
    ifconfig
    
    查看首选IP,然后使用指定端口的IP访问容器

    Ubuntu中的

    ipconfig
    
    ifconfig
    
    希望这能解决您的问题,并尝试使用
    127.0.0.1:port

    您可以查看此幻灯片,其中显示并运行hello world node+docker

    我建议使用这个Docker文件


    你有没有在没有独立网络的情况下尝试过?如果这不允许您访问该页面,我也会删除部署设置。当您可以访问该页面时,您可以逐个将其添加回去,以查看是哪一个导致了错误troubles@ShabbY删除网络和部署设置都不起作用,浏览器仍然会无限期地等待。嗯。。。这里有一个用于部署节点项目的Dockerfile:也许这可以帮助youThanks,第二个选项对我很有用。仍然很困惑为什么端口没有像我运行单个容器时那样绑定到localhost。