我无法在Chrome的http://172.17.0.2:8080/上访问本地站点,我得到"172.17.0.2响应时间太长".

我使用inspect命令获取容器的IP地址.

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} e83c95d05d63

我使用的run命令.

docker run -it -p 8080:8080 --name portfolio-vue portfolio-vue:v1

还有我的Dockerfile

FROM node:7.7-alpine

ADD package.json /tmp/package.json
RUN cd /tmp && npm install

RUN mkdir -p /opt/portfolio-vue && cp -a /tmp/node_modules /opt/portfolio-vue-app

WORKDIR /opt/portfolio-vue
COPY . /opt/portfolio-vue

EXPOSE 8080
CMD ["npm", "start"]

推荐答案

在默认的vue cli设置中,npm start(您正在使用的命令)运行npm run dev.

默认情况下,仅本地主机绑定npm run dev.

--host 0.0.0.0添加到package.json中的webpack-dev-server行,以便可以从docker容器访问它:

比如:

  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",

比如(add --host 0.0.0.0):

    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",

Note:我假设,因为您使用了CMD ["npm", "start"],所以您正在创建一个用于开发或调试目的的容器.如果你正在瞄准生产,你应该真正考虑生成Bundle 包(npm run build)并直接在HTTP服务器上服务生成的文件,比如NGIX(也可以在docker 中创建).

Vue.js相关问答推荐

无法解析组件:google—pay—button

将 html 文件移出 dist vite 中的 src 文件夹

VueI18n 无法读取或更改组合 API 中的区域设置

如何使用 vueJS 上的 ref( ) 函数创建二维数组定义?

如何 for each 动态创建的按钮/文本字段设置唯一变量?

VueJs this.method 不是函数?如何在 Vuejs 的另一个方法中调用一个方法?

事件 click点击的无效处理程序:未定义

错误:[vuex] 期望字符串作为类型,但发现未定义

在Vue.js中从父组件执行子方法

如何使用 VueJS / Typescript 导入 JSON 文件?

取消选中单选按钮

Vuex - 何时从 http 服务器加载/初始化存储数据

Select 下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?

如何在两个属性上使用 Vue/Vuetify 自动完成过滤器?

laravel vuejs/axios put request Formdata 为空

在子元素 vueJS.2 之间切换active类

Vue.js react性如何在幕后工作?

TypeError: Object(...) 不是 Vue 中的函数

Mapbox 事件监听器

这个业务逻辑有多少属于 Vuex?