原来一直正常使用,一段时间后更新应用,就发现的启动失败(这里容易误导为程序问题)。检查出现容器的网段和以前启动的容器网段不一致,如果有同学碰到这类问题,可以参考以下解决思路。
报错信息如下:
fff$ docker logs ef3f119870bd
wait-for-it.sh: waiting 60 seconds for rabbitmq:5672 wait-for-it.sh: rabbitmq:5672 is available after 7 seconds start xxx error: dial tcp {ip}:3306: i/o timeout db Connect() xxx/cmd/db/mysql.initDB /go/src/xxx/cmd/db/mysql/init.go:190 xxx/cmd/db/mysql.InitSDKDB /go/src/xxx/cmd/db/mysql/init.go:144 xxx/configfile.InitDB /go/src/xxx/configfile/init.go:26 main.start /go/src/xxx/main.go:89
. . .
. . .
InitSDKDB error xxx/configfile.InitDB
解决思路:
进入容器,ping ip是否能平通,能ping通但是还是报错:
- 查看容器中的ip,确认mysql中的user表是否添加容器ip网段的白名单。
- 确认防火墙层面有无限制。(我的报错原因是端口被墙了)
以上解决思路仅作参考。