引言
在日常的開發過程中我們使用的開發環境通常與正式環境並不一致,這樣就比較容易出現一些意外。
於是我們通常會借助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 <鏡像名稱>