WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

首先安装Docker:

由于电脑版本是WIN10家庭中文版,所以直接使用Docker Toolbox进行安装。点击Docker Quickstart Terminal启动docker虚拟机。

安装完毕后应该是这样的:

下图表示VirtualBox正在运行一台虚拟机,docker就运行在这台虚拟机上,不要随便修改设置,否则会重新新增一台。

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

IDEA2019 Docker插件安装,个人喜欢都集成到IDEA里,方便使用~

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

安装完毕后在你项目的Run/DeBug Configuation就可以增加docker启动的配置了:

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署 

由于你已经安装好了并且已经启动了Docker,那么就可以在Server里选中你正在运行的Docker容器了:

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

Connection successful 表示你已经成功将IDEA和运行的Docker连接在了一起~

接下来处理热部署的JRebel。

IDEA2019 JRebel插件的安装:

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

详细安装教程及**方式自行度娘。

将以下4个文件放入项目的target目录下,其中Dockerfile可以直接用IDEA在项目target目录下新建一个,名字就叫Dockerfile就行。当然最好和项目生成的war包同级,不然等会儿编写路径有点麻烦。

Dockerfile
jrebel.jar
libjrebel64.so     (64位操作系统)

jrebel-stable-nosetup.zip

第二个(jrebel.jar)和第三个文件(libjrebel64.so)分别位于你本地用户目录下IDEA配置插件库中,

例如:

C:\Users\admin\.IntelliJIdea2019.1\config\plugins\jr-ide-idea\lib\jrebel6

C:\Users\admin\.IntelliJIdea2019.1\config\plugins\jr-ide-idea\lib\jrebel6\lib

最后一个文件jrebel-stable-nosetup.zip,下载地址为http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip

可以参考IDEA的配置:File->JRebel->Startup,选择远程服务器或虚拟机运行 第一步所提示的地址下载。

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

 

在Dockerfile里面加入代码:

#基础镜像(这里填写Docker中保存的image名称,如果没有会自行下载)
FROM tomcat:latest
#作者信息
MAINTAINER Freedomhyt
#添加jrebel依赖库
COPY jrebel.jar /jrebel.jar
COPY libjrebel64.so /libjrebel64.so
ADD jrebel-stable-nosetup.zip /
#定义变量、后续会使用,具体路径可以先启动容器然后进入进行查看
ENV DIR_WEBAPP /usr/local/tomcat/webapps/
ENV JAVA_OPTS="-agentpath:/libjrebel64.so -Drebel.remoting_plugin=true"
#删除webapp下所有文件,因为当前应用作为根应用
RUN  rm -rf $DIR_WEBAPP/*
#添加本地的war包到远程容器中
ADD opc.war $DIR_WEBAPP/ROOT.war
#配置文件夹映射
VOLUME /usr/local/tomcat/webapps
#配置工作目录
WORKDIR /usr/local/tomcat/webapps
#解压war包到ROOT目录
RUN unzip $DIR_WEBAPP/ROOT.war -d $DIR_WEBAPP/ROOT/
#暴露端口
#EXPOSE 6375
#启动tomcat
CMD ["catalina.sh", "run"]

接下来回到Run/Debug Configuation 对刚才的Docker启动方式继续进行配置:

Dockerfile即为新建的Dockerfile文件;

Context folder 选择你build项目的目标路径,我这里是将war包编译到项目路径的target目录下了。

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

Bind ports 为 外部环境需要通过Docker的端口映射到里面的Tomcat容器的配置:

这里的HostIP为正在运行Docker的虚拟机的IP。Container port 为即将要在Docker中运行的Tomcat的端口号,这里指定8080  。Host port 为需要开放给外部使用的端口号,这里指定32771,也可以指定和tomcat相同的端口号如8080。

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

最后别忘了加入你的项目war包~

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

别忘了展示窗口:

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

接下来Run ~

这里的Name可以自定义

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

 

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

等待tomcat启动完成:启动日志中应该有显示如下信息,表示JRebel依赖库顺利添加入了tomcat容器并且成功启动

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

接下来,修改代码后只需要点击

WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署

就能同步至docker的tomcat容器了!

需要点击才会同步!不点不会自动同步,这点需要注意。自动同步的配置还在研究中~