我正在尝试在 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
上的网络流量。这个接口(interface)不接受外部流量所以难怪它不起作用。为了使其正常工作,我们需要将 nuxt 应用程序的 HOST 环境变量设置为 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 应用程序只能在容器内的本地主机上以外的地方进行监听。
关于javascript - 在 Docker 中运行 nuxt js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43746782/