问题描述
docker 部署springboot,springboot集成了vue生成的前端文件,另外使用一个容器打包mysql。
出现ip错误导致只能访问登录页,但是后端数据完全访问不到。
原因1分析+解决方案:
能访问到登录页,说明是后端没有调成功,要么是前端调的ip有问题,要么是后端接口出错。
查看原因,因为springboot中mysql的连接字符串使用的是localhost,而容器启动默认使用的桥接模式,导致容器的localhost指向容器本身的ip
解决方法:容器启动使用host模式,使容器本身的ip和宿主机的ip一致,从而使localhost指向宿主机ip。
原因2分析+解决方案:
另外一个原因:前端中调用后端接口也是使用的localhost,如果将镜像部署在远程服务器上,前端页面访问后端接口会失败。
这个问题只能通过将前端单独封装,动态修改访问后端的ip地址,从而实现远程访问网页