当前位置:   article > 正文

idea 调试远程docker中的spring boot 项目_springboot远程docker调试

springboot远程docker调试

开发环境

idea-2023(放心,旧版本也可以远程调试)

Java版本:17

生产环境

docker版本:23.0.3

Java版本1:openjdk:17.0.2(基于Java17的项目)

Java版本2:adoptopenjdk:8-jdk-openj9(基于Java8的项目)

docker配置

Java8项目的docker配置

dockerFile

  1. FROM adoptopenjdk:8-jdk-openj9
  2. RUN mkdir -p /opt/projects/admin-api
  3. RUN mkdir -p /var/lib/docker/containers/admin-api/
  4. WORKDIR /opt/projects/admin-api
  5. COPY ./admin-api.jar ./
  6. #EXPOSE 2000
  7. # 启动服务
  8. ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002"
  9. CMD java ${JAVA_OPTS} -Djava.security.egd=file:/prod/./urandom -jar admin-api.jar --spring.profiles.active=prod

在jar启动命令中加入JVM参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002

作用:启动时支持远程调试,监听10002端口,请确保该端口已被防火墙放行,阿里云服务器的安全策略中也要放行。

docker-compose.yml

  1. admin-api:
  2. build:
  3. context: admin-api
  4. container_name: admin-api
  5. environment:
  6. - TZ=Asia/Shanghai
  7. - JAVA_OPTS=-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002
  8. hostname: admin-api
  9. image: admin-api
  10. networks:
  11. mall4j-network:
  12. ipv4_address: 192.168.159.9
  13. ports:
  14. - "8112:8112"
  15. - "10002:10002"
  16. restart: always
  17. volumes:
  18. - ./cert:/cert
  19. - ./admin-api/log:/opt/projects/admin-api/log

你会发现,dockerFile和docker-compose.yml中都有远程调试配置,实际上,docker-compose.yml会覆盖dockerFile。

Java17项目的docker配置

把  FROM adoptopenjdk:8-jdk-openj9   替换成   FROM openjdk:17.0.2

把   

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002  

替换成:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10002

开始调试 

第一步:新建 远程JVM调试,旧版本idea新建Remote.

          

 第二步:配置调试参数

 第三步:启动调试

 

  到此结束。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/255587
推荐阅读
相关标签
  

闽ICP备14008679号