无法从主机访问 Dockerized Node JS 应用程序

时间:2021-03-30 14:30:45

标签: node.js docker docker-compose

我有 Node JS 应用程序

docker-compose.yml

version: '3'
  services:  
    app:
      build:
        context: .
        dockerfile: Dockerfile
      command: 'yarn nuxt'
      ports:
       - 3000:3000
      volumes:
       - '.:/app'

Dockerfile

FROM node:15

RUN apt-get update \
    && apt-get install -y curl

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
    && echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
    && apt-get update \
    && apt-get install -y yarn

WORKDIR /app

在运行 $ docker-compose up -d 应用程序后,它可以在容器内访问

$ docker-compose exec admin sh -c 'curl -i localhost:3000'
// 200 OK

但是在容器之外它不起作用。例如在 chrome ERR_SOCKET_NOT_CONNECTED

2 个答案:

答案 0 :(得分:0)

您是否尝试添加

published: 3000

您可以在这里阅读更多内容 - https://docs.docker.com/compose/compose-file/compose-file-v3/

答案 1 :(得分:0)

将此添加到 app 服务可以解决 docker-compose.yml

中的问题
environment:
    HOST: 0.0.0.0

感谢 Marc Mintel 的文章 Development setup with Nuxt, Node and Docker