javascript - 在 Docker 中运行 nuxt js 应用程序

标签 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" ]

但是,当我构建图像并运行容器时 ( 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/

相关文章:

JavaScript/HTML 命令行小部件

docker - docker run -e无法正常工作,发生错误了吗?

javascript - 以选择特定列表项为条件进行文本输入

javascript - Django 使用 VueJS 的上下文进行渲染

css - 如何绑定(bind)由构成颜色名称、 Angular 等的动态变量组成的线性渐变背景属性?

javascript - jquery 在内容增加时移动弹出窗口

javascript - Jquery isNumeric 负零给出真实结果

javascript - krajee 基于 ajax 的文件上传使用文件输入插件

docker - 如何使用与主机共享的数据创建命名 Docker 数据卷

ubuntu - docker 中的 LD_PRELOAD