如何使用IDEA进行DOCKER调试

引言
在日常的开发过程中我们使用的开发环境通常与正式环境并不一致,这样就比较容易出现一些意外。
于是我们通常会借助docker来让我们的开发和正式环境一致。那如何在docker中进行运行和调试呢?

需要解决的问题

我们如何使用IDEA中使用docker模拟、调试呢?

环境准备

  1. 安装IDEA,建议使用新版本
  2. 安装docker环境

具体步骤

1.编写Dockerfile文档

使用Docker运行调试的最基础条件就是编写一个Dockerfile文档,下面是一个参考的案例。
主要注意一下两点:

  1. 导出服务接口(80)和调试接口(5005)。
  2. 增加开启远程调试命令 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005。不同版本的增加方法可在后续的IDEA配置中获取。
FROM openjdk:16.0.2-jdk-buster
VOLUME ["/tmp"]
COPY "target/app.jar" "/app.jar"
EXPOSE 80
EXPOSE 5005
ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005","-jar","/app.jar"]

2.配置IDEA的Docker运行

  1. 打开IDEARun/Debug Configurations
  2. 选择 + 号下的 Docker -> Dockerfile
  3. 参考配置项
    如何使用IDEA进行DOCKER调试

3.配置IDEA的远程JVM调试

  1. 打开IDEARun/Debug Configurations
  2. 选择 + 号下的 Remote JVM Debug
  3. 参考配置项
    如何使用IDEA进行DOCKER调试

4.编写清理Docker镜像(可选)

以下为可选操作。
如果不执行此操作在执行调试的时候容易产生一些没有镜像名称和TAG的空镜像。

具体操作步骤如下

  1. 打开IDEARun/Debug Configurations
  2. 选择 + 号下的 Batch或者Shell Script,选择具体那种视操作系统而定。
  3. 参考命令
docker rm -f <容器名称>
docker rmi -f <镜像名称>
上一篇:欧姆龙plc多轴伺服控制程序fb 欧姆龙PLC CP1H 5轴+1转盘电机4工位程序


下一篇:Minio的Docker部署docker-compose启动流程