远程调试docker构建的weblogic

环境信息

OSType:
    CentOS Linux 7 (Core) x86_64 3.10.0-957.21.3.el7.x86_64
DockerVersion:
    19.03.8
Mirrors: 
    http://ovfftd6p.mirror.aliyuncs.com/
    http://registry.docker-cn.com/
    http://docker.mirrors.ustc.edu.cn/
    http://hub-mirror.c.163.com/
WeblogicVersion:
    12.2.1.3 - developer

部署Weblogic

法1:使用官方镜像

镜像地址:dockerhub
构建之后要运行weblogic,需要使用官方提供的示例,参考上篇文章中间部分:利用Docker手动构建WebLogic镜像。

法2:利用Dockfile手动构建

OracleDockerfile仓库地址:Github。

使用方法参考上篇文章即可。

获取Weblogic相关源文件

在远程调试之前,需要先拿到weblogic源码或源文件(JAR包)。从镜像中就可以取出来,方法如下:

确定weblogic容器运行

远程调试docker构建的weblogic_第1张图片

找到服务器主目录

使用命令docker exec -it weblogic /bin/bash进入到容器当中,一般情况下Oracle主目录存储在环境变量ORACLE_HOME当中,在这个目录下找到最大的那个文件夹一般就是我们要的东西。
远程调试docker构建的weblogic_第2张图片

我这里是在/u01/oracle/wlserver,退出容器,使用命令docker cp weblogic:/u01/oracle/wlserver ./将其从容器中复制出来。

除了需要weblogic的东西之外,后面为了防止出错,建议直接使用容器里的jdkjdk主目录在环境变量JAVA_HOME中:

使用命令docker cp weblogic:/usr/java/jdk-8 ./wlserver/将其拷贝到wlserver目录中,待会直接打包。

然后为了之后IDEA调试不缺依赖,我们在wlserver下创建一个test目录,使用命令find ./wlserver -name *.jar -exec cp {} ./wlserver/test/ \;将所有的jar文件复制到一起。

然后使用zip命令将目录打包:zip -r wlserver.zip ./wlserver,然后sz wlserver.zip将其从虚拟机中搞出来。

IDEA调试配置

使用IDEA打开wlserver文件夹,结构如下:
远程调试docker构建的weblogic_第3张图片

然后在项目设置里,把test目录加载到库里:
远程调试docker构建的weblogic_第4张图片

最后,根据图的指示添加运行配置(Remote),IP和端口填正确,如下图:
远程调试docker构建的weblogic_第5张图片

都弄好之后,点击调试按钮,出现以下日志信息说明成功:
远程调试docker构建的weblogic_第6张图片

下断点方法

成功之后,test目录下的所有jar包都可以展开,找到自己要调试的类,比如com.weblogic.iiop.jar!\weblogic\iiop\ConnectionManager.class
远程调试docker构建的weblogic_第7张图片

在左边行号旁边下断点即可,程序运行到这里会自动中断。

参考链接

  • IDEA+docker,进行远程漏洞调试(weblogic)
  • Another blog

你可能感兴趣的:(远程调试docker构建的weblogic)