其實很簡單,只要 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