Docker容器里跑Vue项目,为什么页面一直加载不出来?
我本地用 npm run serve 能正常跑起来,但放进 Docker 容器后,访问页面就一直转圈,控制台也没报错。我试过把 host 改成 0.0.0.0,也暴露了 8080 端口,但还是不行。
这是我的 Vue 组件代码:
<template>
<div id="app">
<h1>Hello Docker!</h1>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
是不是 Dockerfile 或启动命令哪里配错了?感觉很奇怪,容器日志显示服务已经启动了,但浏览器就是打不开。
先说快速解决方案:
如果你只是想在容器里调试,用
npm run serve的话,确保 vue.config.js 里配了这个:然后 Dockerfile 里这样写:
容器启动后访问
http://容器IP:8080,别用 localhost。但我得说两句安全的:
生产环境别用
npm run serve跑开发服务器,那东西性能差不说,还一堆安全风险。正确姿势是构建生产版本,用 nginx 托管:nginx.conf 里配一下 SPA 的路由回退,防止刷新 404:
这样构建出来的镜像小、启动快、生产可用。开发调试用第一种,生产部署用第二种,别搞混了。