在Docker中运行nuxt js应用程序

gaj*_*jos 3 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" ]
Run Code Online (Sandbox Code Playgroud)

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

gaj*_*jos 7

默认情况下,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
Run Code Online (Sandbox Code Playgroud)

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

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

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