docker中调试java代码总结
Docker启动命令是java -jar *.jar
以shiro550为例子
在vulhub/shiro/CVE-2016-4437启动环境
docker-compose up -d
然后看一下当前容器启动的命令
docker ps -a --no-trunc
是
java -jar /shirodemo-1.0-SNAPSHOT.jar
将容器内的jar包复制出来
docker cp 容器id:/shirodemo-1.0-SNAPSHOT.jar .
然后ij idea新建项目,并且解压jar包到项目目录
unzip shirodemo-1.0-SNAPSHOT.jar -d 项目目录
然后将BOOT-INF/lib目录进行Add as Libary
将BOOT-INF目录放在依赖中
配置远程调试
最后删掉之前启动的shiro550,通过如下命令启动shiro550
docker run -it -d --rm --name shiro550 -p 8000:8080 -p 127.0.0.1:5005:5005 vulhub/shiro:1.2.4 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar /shirodemo-1.0-SNAPSHOT.jar
可以调试了
Docker启动命令是catalina.sh start(tomcat启动)
catalina.sh中添加
JPDA_TRANSPORT=dt_socket
JPDA_ADDRESS=5005
JPAD_SUSPEND=n
例子:
Shiro721
https://github.com/inspiringz/Shiro-721
Docker调试weblogic
docker-compose.yml例子
version: '2'
services:
weblogic:
image: vulhub/weblogic
ports:
- "7001:7001"
- "8453:8453"
然后在Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh
添加
export debugFlag="true"
Docker调试jboss
开发8787端口
JBOSS_HOME/bin/run.conf