IDEA中远程调试docker容器中java项目

适用于:项目在本地运行没有问题,在服务器中发布却出现异常
未上线的项目,该方法会影响到服务器中项目的运行

需要有容器项目的源码,并且需要和容器中的项目一致

  1. 修改DockerFile文件

    项目运行时DockerFile中需要添加如下命令

    “-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address={port}”

    如:

    FROM java:8
    EXPOSE 8080
    
    VOLUME /tmp
    
    COPY fatherbackend.jar app.jar
    # 设置时区
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    RUN echo 'Asia/Shanghai' >/etc/timezone
    
    RUN bash -c 'touch /app.jar'
    
    ENTRYPOINT ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","app.jar"]
    
  2. 生成镜像

    进入当前目录(存在DockerFilejar的目录)

    执行命令生成镜像

    docker build -t {镜像名称} .

  3. 运行容器

    执行命令

    docker run -d -p 8080:8080 -p 5005:5005 --name {容器名称} {镜像名称}

    说明:需要启用两个端口

    ​ 8080 -》访问项目端口

    ​ 5005 -》调试端口

    注意:服务器需要开放端口5005

  4. 配置IDEA

请添加图片描述

添加

请添加图片描述

请添加图片描述

连接成功即可进行远程DeBug

注意事项:
  • 该远程调试会影响到真实项目运行。
  • 该方法只能调试,不能对代码做更改。适合临时使用
  • 链接失败请检查端口是否开放。
  • 调试完成后要重新修改将调试模式关闭,避免不必要的麻烦
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐