在Docker中运行nuxt js应用程序

时间:2017-05-02 20:35:47

标签: javascript docker vue.js nuxt.js

我试图在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时什么也得不到。可能是什么原因?

1 个答案:

答案 0 :(得分:6)

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

FROM node:6.10.2

ENV HOST 0.0.0.0

# rest of the file

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

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

或者使nuxt应用程序只在容器内的localhost上侦听的任何其他方式。