Docker内Webpack代理连接本地外部API抛出EINVAL错误如何修复?
修复方案
1. 补全代理配置的协议前缀
EINVAL报错90%以上的诱因是代理目标地址缺少http/https协议头,Webpack代理无法识别请求协议直接抛出参数无效错误。检查你的proxy.js配置,确保target字段完整带协议:
// 正确示例 module.exports = { '/auth': { target: 'http://host.docker.internal:4000/akk', // 必须加http://前缀,不能只写host.docker.internal:4000/akk changeOrigin: true, // 路径重写规则按需调整,不影响EINVAL报错 } }
2. Linux Docker环境手动配置host映射
如果你使用Linux系统运行Docker,默认不会自动生成host.docker.internal的本地解析,需要在启动容器时主动追加映射规则:
- 若使用
docker run启动容器,添加启动参数:--add-host=host.docker.internal:host-gateway - 若使用docker-compose编排,在对应服务配置下新增字段:
services: your-quasar-service: # 保留原有镜像、端口、 volumes等配置 extra_hosts: - "host.docker.internal:host-gateway"
3. 确认后端服务监听地址
确保宿主机上运行的后端服务没有绑定127.0.0.1,需要改为绑定0.0.0.0,否则Docker容器转发的请求会被宿主机网络栈拦截,无法到达后端服务。
内容的提问来源于stack exchange,提问作者Kamil Kiełczewski
相关产品推荐
相关产品推荐

