在Docker中运行nuxt js应用程序

我正在尝试在Docker容器中运行nuxt应用程序。 为了做到这一点,我创build了以下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" ] 

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

默认情况下,Docker容器中的应用程序正在接受http://127.0.0.1:3000上的networkingstream量。 这个接口不接受外部stream量,所以难怪它不工作。 为了使其工作,我们需要将nuxt app的HOST环境variables设置为0.0.0.0 (所有的IP地址)。 我们可以在Dockerfile中这样做:

 FROM node:6.10.2 ENV HOST 0.0.0.0 # rest of the file 

或者在脚本的“开始”命令中的package.json中:

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

或者任何其他的方式,使NuXT应用程序听其他地方只在容器内的本地主机。