Docker-Compose部署MERN认证系统:本地无法访问5173端口求助
解决Vite React容器本地无法访问的问题
核心原因
Vite开发服务器默认仅监听容器内部的localhost,外部主机无法通过映射的端口访问到服务,必须让Vite监听0.0.0.0才能对外提供访问。
具体修复方案
方案1:修改docker-compose.yml的前端启动命令
直接在frontend服务的启动命令后添加--host 0.0.0.0参数:
version: "3.8" services: # ... 其他服务配置不变 frontend: build: frontend command: yarn dev --host 0.0.0.0 # 添加--host参数 ports: - "5173:5173" volumes: - ./frontend/:/app depends_on: - backend
方案2:修改前端项目的package.json脚本
如果希望启动命令更简洁,可以直接修改前端项目根目录下的package.json,将dev脚本改为默认监听0.0.0.0:
"scripts": { "dev": "vite --host 0.0.0.0" }
修改后docker-compose中的command: yarn dev会自动应用该配置。
验证修复效果
重启容器并确认服务状态:
docker-compose down && docker-compose up --build
查看前端容器日志,当看到类似Local: http://0.0.0.0:5173的输出时,即可正常通过本地浏览器访问http://localhost:5173。
额外排查点
- 检查本地防火墙是否拦截了5173端口
- 用
docker ps确认前端容器处于Up状态 - 用
docker logs <frontend-container-name>查看容器是否有启动异常日志
内容的提问来源于stack exchange,提问作者yassine-eluharani
相关产品推荐
相关产品推荐

