PS: 经本人测试在MacOs 10.13、Idea 2019.2、Centos7、Jrebel 2019.2 、Docker18.06.3 上运行成功
ps:以上两步操作的目的是为了可以明确看到不同方式部署项目所需要的额外命令行参数
附上本人的地址: jrebel.jar https://ali.scyuan.xyz/other/jrebel.jar libjrebel64.so https://ali.scyuan.xyz/other/libjrebel64.so
关于这一步的操作参见CentOS7开启docker远程访问并在idea中连接使用 如果还没有安装docker可以参考安装Docker和docker-compose的脚本 如果有问题请留言联系我,以便及时解决。
在这儿我选择了使用docker运行项目
idea中配置如下 Dockerfile文件 FROM openjdk:8-jre ENV SERVER_PORT=80 ENV SPRING_CLOUD_CONFIG_LABEL=d2 ENV SPRING_CLOUD_CONFIG_PROFILE=d2 ENV EUREKA_URLS="eureka集群地址" VOLUME /logs/ ADD target/app.jar /app.jar ADD https://ali.scyuan.xyz/other/libjrebel64.so /libjrebel64.so ADD https://ali.scyuan.xyz/other/jrebel.jar /jrebel.jar EXPOSE $SERVER_PORT ENTRYPOINT ["java", "-jar", "-Xdebug", "-Xrunjdwp:server=y,transport=dt_socket,address=81,suspend=n","-agentpath:/libjrebel64.so","-Drebel.remoting_plugin=true", "-Djava.security.egd=file:/dev/./urandom", "/app.jar","--spring.cloud.config.label=${SPRING_CLOUD_CONFIG_LABEL}", "--spring.cloud.config.profile=${SPRING_CLOUD_CONFIG_PROFILE}", "--server.port=${SERVER_PORT}", "--eureka.client.serviceUrl.defaultZone=${EUREKA_URLS}"] 在这儿或许你会有疑问,为何我不将这两个文件打包为一个包,然后一起下载呢?原因是因为ADD命令从网络下载文件时并不会自动解包,然而可能某些container中并没有解包指令,我也懒得安装了,所以就直接分开为两个文件了。毕竟为了简单嘛!只要在命令行中增加如下命令
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=远程调试端口,suspend=njava -jar -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=远程调试端口,suspend=n app.jar
允许指定项目使用热部署,操作如图所示
编写简单demo测试热部署,简简单单就好
在idea中配置docker打包并发布项目到容器中
构建镜像并运行
确保容器启动,项目启动成功如图
日志可以在docker容器的log选项中看到,也可以使用下列命令行查看日志 docker logs -f -t --tail 日志显示行数 container_name # 滚动查看尾部n行日志 docker logs -f container_name # 滚动查看所有日志 如果container启动失败,可以进入容器内查看所需文件是否正确被打包: docker run -it --rm [--name container_name] imgge[:tag] bash # 交互模式进入容器 …… # 更多命令请自行查阅文档6. 服务启动后需要配置jrebel客户端连接到jrebel server,保证可以向server端通信
添加server,并确保连接成功,即出现图中的 Connection Successful. 将项目与remote server绑定至此为止,恭喜已经成功地完成了所有步骤