远程调试部署在容器中的springboot项目「建议收藏」

远程调试部署在容器中的springboot项目「建议收藏」问题:访问网站,会根据ip判断访客所处位置,但部分ip插入数据库失败。 以为是一次小问题,很快就解决了,没想到最终花了6个小时左右,才搞清楚。分析 :1、将本地程序跑起来,发现一切正常,可以插入到数据库。但问题在线上确实妥妥的出现的,而我现在日志级别是info,没有错误日志。所有准备Debug线上程序,之前只debug过使用基本的tomcat发布。而我现在的jar是使用docker构建的镜像,运行的镜像。 2、问题从线上转化到了,我需要远程debug线上程序发现问题,并将之解决。查各种资料,配置

大家好,又见面了,我是你们的朋友全栈君。

问题:

访问网站,会根据ip判断访客所处位置,但部分ip插入数据库失败。 以为是一次小问题,很快就解决了,没想到最终花了6个小时左右,才搞清楚。

分析 :

1、将本地程序跑起来,发现一切正常,可以插入到数据库。但问题在线上确实妥妥的出现的,而我现在日志级别是info,没有错误日志。所有准备Debug线上程序,之前只debug过使用基本的tomcat发布。而我现在的jar是使用docker构建的镜像,运行的镜像。 2、问题从线上转化到了,我需要远程debug线上程序发现问题,并将之解决。查各种资料,配置端口进行调试。从起开启各种踩坑之路。 首先百度到的基本上就这几种:

远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」

远程调试部署在容器中的springboot项目「建议收藏」



以上基本上就涵盖了大部分博客内容,我都试过,但都没用。但不能说博文错着,人家博客可能就适合自己当时的问题。且解决了。

我呢,只能继续寻找问题的答案: 继续分析:明明启动了程序了,也修改了DockerFile文件了,问题出在哪里了。 

远程调试部署在容器中的springboot项目「建议收藏」

既然启动了,那就看端口是否监听,继续百度。通过查看启动日志方式,查看该端口是不是被监听着,但日志可以发现是有的,也没问题。

远程调试部署在容器中的springboot项目「建议收藏」

通过 netstat -tnlp | grep 端口号 查看端口是否启动 发现没有启动,找到问题了,该端口号没有启动,继续思考。为什么日志中已经显示监听状态,但通过netstat却找不到该端口呢。 于是继续百度,终于看到了几句话,大致想明白了,立马验证,果不其然,就是他导致的。先贴上截图: 

远程调试部署在容器中的springboot项目「建议收藏」

瞬间明白了,我只是在docker容器中开放了该端口,但是我并没有在启动时映射出来,于是修改我的启动脚本,加上映射出来的端口,然后远程debug,直接就连通了。然后远程都好了,ip插入不到数据库问题,还有什么难,几分钟就解决了 

远程调试部署在容器中的springboot项目「建议收藏」

总结:

1、在此次解决bug时,学会远程debug docker容器中的技巧,以后线上有问题能很快的定位,且可以启动多线程模式,也不影响其他人。 2、对docker容器理解更加深刻了。

 

原文链接:http://ganshuo8.com/article/baf44d183bd2cc60fbbf1dc2690c9d40

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147122.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号