运行 Docker 中的 nuxt js 应用
Running nuxt js application in Docker
我正尝试在 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 地址)。我们可以在 Docker 文件中执行此操作,如下所示:
FROM node:6.10.2
ENV HOST 0.0.0.0
# rest of the file
或在 package.json 脚本的 "start" 命令中:
"scripts": { "start": "HOST=0.0.0.0 nuxt start" ...}
或任何其他方式,使 nuxt 应用程序只能在容器内的本地主机上以外的地方进行监听。
我正尝试在 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 地址)。我们可以在 Docker 文件中执行此操作,如下所示:
FROM node:6.10.2
ENV HOST 0.0.0.0
# rest of the file
或在 package.json 脚本的 "start" 命令中:
"scripts": { "start": "HOST=0.0.0.0 nuxt start" ...}
或任何其他方式,使 nuxt 应用程序只能在容器内的本地主机上以外的地方进行监听。