WIN10 家庭中文版+IDEA2019+JRebel插件+Docker for windows实现远程热部署
首先安装Docker:
由于电脑版本是WIN10家庭中文版,所以直接使用Docker Toolbox进行安装。点击Docker Quickstart Terminal启动docker虚拟机。
安装完毕后应该是这样的:
下图表示VirtualBox正在运行一台虚拟机,docker就运行在这台虚拟机上,不要随便修改设置,否则会重新新增一台。
IDEA2019 Docker插件安装,个人喜欢都集成到IDEA里,方便使用~
安装完毕后在你项目的Run/DeBug Configuation就可以增加docker启动的配置了:
由于你已经安装好了并且已经启动了Docker,那么就可以在Server里选中你正在运行的Docker容器了:
Connection successful 表示你已经成功将IDEA和运行的Docker连接在了一起~
接下来处理热部署的JRebel。
IDEA2019 JRebel插件的安装:
详细安装教程及**方式自行度娘。
将以下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,选择远程服务器或虚拟机运行 第一步所提示的地址下载。
在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目录下了。
Bind ports 为 外部环境需要通过Docker的端口映射到里面的Tomcat容器的配置:
这里的HostIP为正在运行Docker的虚拟机的IP。Container port 为即将要在Docker中运行的Tomcat的端口号,这里指定8080 。Host port 为需要开放给外部使用的端口号,这里指定32771,也可以指定和tomcat相同的端口号如8080。
最后别忘了加入你的项目war包~
别忘了展示窗口:
接下来Run ~
这里的Name可以自定义
等待tomcat启动完成:启动日志中应该有显示如下信息,表示JRebel依赖库顺利添加入了tomcat容器并且成功启动
接下来,修改代码后只需要点击
就能同步至docker的tomcat容器了!
需要点击才会同步!不点不会自动同步,这点需要注意。自动同步的配置还在研究中~