运行 Docker 中的 nuxt js 应用

Running nuxt js application in Docker

我正尝试在 docker 容器中 运行 nuxt 应用程序。为此,我创建了以下 Dockerfile:

FROM node:6.10.2

RUN mkdir -p /app

EXPOSE 3000

COPY . /app
WORKDIR /app
RUN npm install
RUN npm run build

CMD [ "npm", "start" ]

但是,当我构建图像和 运行 容器 (docker run -p 3000:3000 <image-id>) 时,我在浏览器中点击 localhost:3000 时什么也得不到。可能是什么原因?

Docker 容器内的应用程序默认接受 http://127.0.0.1:3000 上的网络流量。这个接口不接受外部流量所以难怪它不起作用。为了使其正常工作,我们需要将 nuxt 应用程序的 HOST 环境变量设置为 0.0.0.0(所有 ip 地址)。我们可以在 Docker 文件中执行此操作,如下所示:

FROM node:6.10.2

ENV HOST 0.0.0.0

# rest of the file

或在 package.json 脚本的 "start" 命令中:

"scripts": { "start": "HOST=0.0.0.0 nuxt start" ...}

或任何其他方式,使 nuxt 应用程序只能在容器内的本地主机上以外的地方进行监听。