其实很简单,只要 docker 启动的时候:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=60006
具体怎么做呢?
1 可以在创建镜像的时候,设定JAVA_OPTS:
#指定jvm运行参数
ENV JAVA_OPTS=""
#指定配置项
ENV BOOT_CONFIG=""
ENTRYPOINT java ${JAVA_OPTS} -javaagent:/SecPoint/SecPoint.jar -DappKey=default -jar /umc-testaa.jar ${BOOT_CONFIG}
2 然后,启动容器的时候,直接修改JAVA_OPTS即可:
java -Xmx4g -Xms4g -Xmn2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/dump.log -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=60006 umc-portal.jar --spring.profiles.active=222new,default --spring.application.name=umc-portal --spring.cloud.nacos.config.server-addr=192.169.7.148:8848 --spring.cloud.nacos.config.ext-config[0].data-id=umc-portal-node1.properties
3 本地idea, 创建远程jvm 程序,并设定agentlib:
指定 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=60006