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即可