Docker容器中Vue3 Dev模式端口绑定报ERR_EMPTY_RESPONSE
问题原因及解决办法
核心原因
你的Vue3开发服务仅监听了容器内部的回环地址(127.0.0.1),而非容器的对外网卡地址(0.0.0.0)。
Docker的端口映射是把主机端口的请求转发到容器的网卡IP上,但如果服务只绑定127.0.0.1,只有容器内部的请求能被响应,外部(包括主机)的请求根本打不到服务上,所以会返回ERR_EMPTY_RESPONSE。
你用npm run dev --host启动时,部分Vite版本中仅加--host参数可能不会强制绑定0.0.0.0,或者参数未被正确解析,导致服务还是只监听127.0.0.1。而生产版本用Nginx正常,是因为Nginx默认监听0.0.0.0,能接收容器外部的请求,和开发服务的监听逻辑完全不同。
解决办法
- 直接在启动命令里明确指定监听地址:
npm run dev --host 0.0.0.0 - 或者修改Vite配置文件(
vite.config.js),永久设置监听地址:export default defineConfig({ server: { host: '0.0.0.0' } })
内容的提问来源于stack exchange,提问作者Oleg Vartanov
相关产品推荐
相关产品推荐

