1、docker挂载目录
实现原理:docker中只需要安装一个JDK镜像,把该镜像的目录挂载到外部的Linux中,如挂载到/usr/data/jar,我们只需要把Jenkins构建的jar文件传输到该目录中,在通过docker命令启动jar即可:
适用范围:开发人员少、项目小的场景
优点:节省磁盘空间,不需要重新生成新的镜像,每次都是通过安装有JDK的镜像进行启动项目
2、把构建的jar打包成docker中新的镜像
原理:Jenkins构建好jar后,推送jar同时,也把dockerfile文件(该文件需要引入jdk)同时传输至目标服务器,在目标服务器的docker中,会生成一个新的镜像(拥有jdk、构建好的jar),再通过docker命令执行生成的新容器,项目部署完成
适用范围:云原生(优点)
缺点:项目部署繁重,同一个项目想部署多个时,不利于扩展
3、把构建的jar推送到docker私服,由K8S运行
原理:目标服务器的docker至负责把Jenkins服务器推送过来的jar,通过dockerfile打包成docker镜像,然后再把该镜像推送到docker私服(Harbor)中,再由K8S集群拉取镜像,运行镜像从而实现项目部署(可以运行多个)
适用范围:大型企业、项目团队人数多、云原生
该方式使用越来越广