docker部署minio和业务服务因变更minio密码导致访问不到图片的问题

问题起因

业务application和minio都是docker部署。按部署规则minio的环境变量中设置了MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。这样就可以用这套用户名密码登录minio了。而我的application中是通过api访问minio获取资源URL,提供给前端的。所以在application的环境变量中也配置这套用户名和密码。按理说这样启动,使用minio完全没有问题的。
然而,幺蛾子出在minio启动时报端口占用。
于是等了几天,被另一个同事处理了minio端口占用,并且把minio环境变量的密码给改了。minio可以正常登录和使用。可是,application访问minio用的还是之前的老密码,能拿到访问图片返回的URL,却死活,不能把图片展示出来,前端报错:Failed to load response data: No data found for resource with given identifier,图片破裂:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题排查

1、排查了minio服务、application服务的环境变量配置,的确发现两边minio的密码不一致。于是把application服务的配置改正确。【重启】了application容器,然后还是访问不到图片。报错信息并没有发生变化。
2、登录minio查看桶的配置,也很其他环境的一模一样。排除配置问题。
3、重新设置了minio和application服务中minio的登录密码。再重启服务还是看不到图片,只能看到图片连接。
4、百度、帖子看了,都没找到解决办法。

问题解决

思考: 为什么会能拿到URL连接,却访问不到资源呢?
猜测: 获取URL连接的API可以访问通,但是真正去获取资源时,被服务器拒绝了。
大胆尝试: 在正确的测试环境,把application服务中minio密码改错,【重启】服务,发现图片居然还能正常访问,惊掉下巴。再大胆尝试,把minio服务的环境变量密码改了,【重启】minio服务,发现用原来的密码能登录上去,而用刚配置的新密码却登录不成。
豁然开朗: 肯定是【重启】没有真正生效!docker容器中用的还是之前环境变量。
解决办法:

先停掉minio服务,然后移除minio的docker容器,重新发布一个新的docker容器。再用老密码登录minio,登录失败,用新密码登录,登录成功!对application服务同样一顿骚操作,图片访问正常了!

问题解决!撒花*~*

经验总结

docker容器的环境变量修改后,需要重新up -d 容器,仅仅restart容器,并不能应用新的配置信息。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值