引言
在日常的开发过程中我们使用的开发环境通常与正式环境并不一致,这样就比较容易出现一些意外。
于是我们通常会借助docker来让我们的开发和正式环境一致。那如何在docker中进行运行和调试呢?
需要解决的问题
我们如何使用IDEA
中使用docker
模拟、调试呢?
环境准备
- 安装
IDEA
,建议使用新版本 - 安装
docker
环境
具体步骤
1.编写Dockerfile
文档
使用Docker运行调试的最基础条件就是编写一个Dockerfile
文档,下面是一个参考的案例。
主要注意一下两点:
- 导出服务接口(80)和调试接口(5005)。
- 增加开启远程调试命令
-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运行
- 打开
IDEA
的Run/Debug Configurations
- 选择
+
号下的Docker
->Dockerfile
- 参考配置项
3.配置IDEA
的远程JVM调试
- 打开
IDEA
的Run/Debug Configurations
- 选择
+
号下的Remote JVM Debug
- 参考配置项
4.编写清理Docker镜像(可选)
以下为可选操作。
如果不执行此操作在执行调试的时候容易产生一些没有镜像名称和TAG的空镜像。
具体操作步骤如下
- 打开
IDEA
的Run/Debug Configurations
- 选择
+
号下的Batch
或者Shell Script
,选择具体那种视操作系统而定。 - 参考命令
docker rm -f <容器名称>
docker rmi -f <镜像名称>