我正在尝试在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地址)。我们可以在Dockerfile中执行以下操作:或在脚本的“开始”命令中的package.json中:
"scripts": { "start": "HOST=0.0.0.0 nuxt start" ...}
或任何其他使nuxt应用程序仅在容器内部的localhost上进行侦听的方法。