022-docker與idea結合使用,以及docker斷點調試


1、idea配置docker 部署

1.1、服務器端:服務器配置docker遠程連接

vi /lib/systemd/system/docker.service  # ① 修改宿主機配置文件
#在 ExecStart 開頭的這一行末尾添加 -H tcp://0.0.0.0:2375
systemctl daemon-reload && systemctl restart docker # ② 重啟docker
firewall-cmd --zone=public --add-port=2375/tcp --permanent # ③ 防火牆開放端口2375

http://ip地址:2375/version

1.2、本地下載插件docker,然后配置

連接成功后我們便可查看docker下的容器和鏡像 

然后添加dockerfile配置【其實就是打包鏡像:docker build -t app:1.1 .】以及啟動docker

 構建成功后,既部署載遠程了。當然上一步也可以選擇本地。

 

2、使用docker調試

為了保證測試環境與正式環境一致,我們大多使用docker,因為docker可以封裝除了內核硬件之外的運行環境,docker將軟件包以層的概念封裝起來,保證在不同機器都會有一致的運行環境.

2.1、創建打包鏡像配置

【其實就是打包鏡像docker build -t app:1.1 .】這里記得勾選 Run built images 這樣能夠進入調試

添加dockerfile運行時配置,構建鏡像配置,參看上面的配置

注意:若果都是本機記得5005 不要綁定映射,端口占用,非要寫個 就隨便綁定一個即可

2.2、新建一個Remote類型的Debug config

具體配置如下圖

如果使用maven 多moudle的話在use module classpath選擇要進行調試的moudle

在before launch:添加一個before選項,類型是launch docker before debug類型,現在你在第一步新增的DockerFile Run Config

配置docker啟動

方式二、在custom command選項配置啟動項目實例的java 命令,將圖中圈起來的部分作為java命令的參數

java
-jar
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
/home/admin/app.jar

方式一、dockerfile中配置【推薦】

ENTRYPOINT ["sh","-c","java -Duser.timezone=GMT+08 -jar  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 /home/admin/app.jar"] 

記得加入代理:agentlib:jdwp

注意dockerfile中配置

端口漏出

###暴露個jar運行的端口8081運行端口  5005調試端口
EXPOSE 8081 5005

 打斷點調試即可

2.3、配置remote 不每次都構建鏡像

因為上述before launch,添加了dockerfile配置,故每次都要構建進行

有修改時候使用上述,沒有修改新建一個新的remote調試,不添加before launch即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM