我无法在 http://172.17.0.2:8080/ 上本地访问该站点在 Chrome 中,我得到“172.17.0.2 响应时间太长”。
我使用inspect命令获取容器的IP地址。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} e83c95d05d63
我使用的运行命令。
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
仅绑定(bind)到 localhost。
将 --host 0.0.0.0
添加到 package.json
中的 webpack-dev-server
行,以便您可以从 < strong>在 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",
注意:我假设,因为您使用了 CMD ["npm", "start"]
,您正在创建一个用于开发或调试目的的容器。如果你的目标是生产,你真的应该考虑生成包 (npm run build
) 并直接在像 nginx 这样的 HTTP 服务器上提供生成的文件(也可以在 docker 中创建)。
关于node.js - 如何容器化 Vue.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49758077/