Docker Tomcat容器图片上传后续问题处理
Docker
Tomcat
容器上传图片时, 遇到点问题:图片可正常上传, 但是后续处理时有问题, 比如再上传到七牛云; 而非Docker
方式部署的没问题!
容器问题
后来通过多次调试找到了问题: tomcat容器无法直接访问到宿主机
上传图片大致步骤:
- 正常的表单上传
- 后端接收到文件流后, 存本地临时文件
- 拼接访问链接, 并返回到前端
- 前端以此文件(图片)的链接为参数, 调用上传七牛云的接口
- 接口处理图片上传到七牛云时失败
前面1~4步没有问题, 而且第3步返回的链接是可以访问的(内网宿主机IP+端口), 第5步处理图片是以网络图片方式处理的, 不过此图片它是访问不了的!
通过: docker exec -it tomcat8 /bin/bash
方式进入到容器里, 这里直接:ping 宿主机IP
就不好使了, 当然图片读取失败, 后面自然不好使
解决方案
找到了问题所在, 解决办法就有针对性了: 能访问到图片即可
, 方式不限
- 图片上传后, 使用容器里的本地文件方式读取(跟映射到宿主机的路径没有关系)
- 把
宿主机+端口
替换成成localhost+暴露端口
- 使用域名方式, 或公网IP
我这里直接使用替换的方式, 中间加个步骤, 单独处理一下图片的URL即可
这里要考虑一下是否通用, 其他部署(正式环境)也得考虑是否有问题!
blog comments powered by Disqus