使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat

文章目录

    • 安装docker和Kitematic
    • 安装Jenkins
      • 正确安装jenkins
    • 配置Maven
    • 创建Jenkins Pipline 项目
    • 安装Tomact
    • 配置Tomcat

安装docker和Kitematic

这里就不细说怎么安装了,不知道怎么安装的可以看看我之前的博文:Docker安装Jenkins实现自动化构建部署到Tomcat,当时用的不是Pipeline流水线的方式进行构建。

我这次依然使用的是kitematic这款软件,但是这款软件的坑真的很多。。看起来一点都不是给小白使用的。所以如果你真的想玩好docker你还是别使用Kitematic这款软件,而已其实根本也不需要Kitematic,只是他提供了一些可视化的界面而已,功能并不是很强大可配置性也不高。但是本文我还是介绍一下Kitematic的使用,以及遇到的一些坑,总结一些经验教训吧。。

安装Jenkins

我们可以通过Kitematic来进行安装Jenkins,这里就遇到了第一个坑。。

在Kitematic中搜索jenkins,你可以看到官方的镜像。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第1张图片
但是坑的是,官方的镜像在安装一些插件的是会安装不了。。。也不是网络的问题,因为我换过很多其他的国内镜像也是一样的。。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第2张图片
下面就是一些设置国内镜像的方法:
https://blog.csdn.net/tianhua79658788/article/details/78249908
http://mirrors.jenkins-ci.org/status.html
https://www.cnblogs.com/jtestroad/p/7699826.html

最后看到这个镜像上面的docker hub上的一些评论才发现原来是官方上面版本已经太低了。。
官方的版本居然还是2.60…
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第3张图片
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第4张图片

还有一点坑的是,使用Kitematic如果你点击Volumes,他可以帮你启动文件夹的挂载,挂载到你本地windows电脑,我觉得这一点是十分香的!,但是也有很多坑。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第5张图片

在这里插入图片描述

缺点好像是就是会重新启动,变成一个新的docker环境,所以最好是在一开始就点了,不然以后点击可能就会把你以前建的docker给毁掉了,变成一个全新的。貌似好像改端口号也是会这样,所以不太人性化,而且端口号也经常变。。

但是如果你以后还是先link到你本地windows的路径怎么办,记住不要点上面的按钮,你可以选择setting,然后选择volumes,然后在点上面的本地路径连接,这种方式就不会造成上面的问题。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第6张图片

正确安装jenkins

正确安装jenkins直接看这里:

搜索jenkins,下载其他的镜像,推荐下载下面这个
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第7张图片

版本是2.168

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第8张图片

之后就可以创建一个账户了。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第9张图片

最后保存并完成
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第10张图片

登陆进入之后我们简单了解一下。

正常直接新建项目是不能建立maven项目的,需要下载插件。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第11张图片

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第12张图片

下载Maven Integration
在这里插入图片描述

之后新建项目的时候就可以选择maven工程了。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第13张图片

不过我们这次的重点是使用Pipline,所以我们要建的是pipline项目,但是在建立项目之前我们需要配置一些jenkins的环境。

配置Maven

因为这个镜像已经默认有java和git的环境了。所以事实上我们只需要安装maven。

我们需要到全局的工具配置上去配置我们的环境。。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第14张图片

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第15张图片
我们这里直接选择从apache上面下载安装,或者你可以选择自己把maven包通过本地的共享文件下放到你的jenkins的目录下,自己解压安装和配置,使用 linux的命令 ln -s {你的maven路径}/bin/mvn /usr/bin/mvn 或者 ln -s {你的maven路径}/bin/mvn /usr/bin/mvn,最好都配上。。这样就可以在你的docker里面直接使用mvn命令了。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第16张图片

现在我们先记住你配置的maven的名字,这里我设置的叫maven。

创建Jenkins Pipline 项目

现在我们开始建立一个新项目。这个是我跟同事一起合作的工程,使用groovy写的,这里只是作为demo。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第17张图片

创建完成之后我们可以开始配置。
这里我只是演示一下轮询吧。。配置一下每分钟扫一次。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第18张图片

我们可以通过下面两个部分来帮助我们快速的写pipline script,这些就你们自己去研究吧。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第19张图片

Pipline scrpit的语法我就不跟你们多讲了,网上很多资料,我这是记录一下我自己的构建过程。
参考:
https://blog.csdn.net/diantun00/article/details/81075007

node {
    def maven_home
     stage 'Init'
        maven_home=tool 'maven'
}

这里使用到了tool ‘maven’,意思就是使用我们在上面全局配置的maven工具来进行构建

然后就是拉代码,mvn clean package test,然后就是利用maven 插件进行部署到tomcat
这些都是很简单的一些脚本,通过上面的快速帮助都是可以写出来的,网上也有很多现成的脚本。。

node {
    def maven_home
     stage 'Init'
        maven_home=tool 'maven'
        git branch: 'RELV4.0', credentialsId: 'xxxx', url: 'https://github.com/xxxxx.git'

    stage 'Build'
        echo 'start build project'
        sh "'${maven_home}/bin/mvn' clean package test"
     
    stage 'Deploy'
        echo 'start deploy project'
        sh "'${maven_home}/bin/mvn' tomcat7:redeploy-only"
}

之后我们就可以保存了。

安装Tomact

我们直接在docker上安装。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第20张图片
直接下载一个,然后之后安装。

配置Tomcat

然后可以使用DOCKER CLI进入我们的tomcat中进行配置,或者可以打开虚拟机,然后进去配置都是一样的。。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第21张图片
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第22张图片

我们可以使用docker ps查看现在正在运行的docker

在这里插入图片描述
然后我们可以看到docker container id

之后我们可以使用命令 docker exec -u 0 -it 加上你的docker container id再加上/bin/bash,这里加上-u 0就是把你当前的管理员root权限带进docker,让你在docker里面也拥有管理员的权限,不然有很多权限的问题需要处理。。
在这里插入图片描述

然后我们来看看目录:
在这里插入图片描述

我们需要配置几个文件。
关于tomcat的配置,可以参考:

https://blog.csdn.net/weixian52034/article/details/53218584
https://blog.csdn.net/u012316953/article/details/53730907
首先是/conf下面的文件
在这里插入图片描述
可能有的人进来之后发现使用不来linux vim的命令,这个时候可以使用apt-get update来更新,更新完毕之后,使用apt-get install vim命令来下载vim,之后我们就以用vi命令来修改我们的配置文件.

		  tomcat7
          admin
          admin

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第23张图片

之后修改tomcat-user.xml
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第24张图片
其实最好都加上:









之后我们就可以重启我们的tomcat了。

之后看看我们项目中的pom.xml上的一些配置。

      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.1
        
          
          http://192.168.99.100:32798/manager/text 
          tomcat7 
          admin
          admin
          /gallery
        
      

因为我们使用的是spring boot的项目,所以我们的主方法还需要设置。

关于如何把spring boot部署到外部tomcat的配置,可以参考一下下面的链接:

https://blog.csdn.net/eguid_1/article/details/52609600
https://blog.csdn.net/javahighness/article/details/52515226
https://blog.csdn.net/kkgbn/article/details/52061771

主入口需要作如下设置:
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第25张图片
还有需要加上spring boot的maven插件
https://www.cnblogs.com/thinking-better/p/7827368.html

   
        org.springframework.boot
        spring-boot-maven-plugin
        
          com.cc.gallery.GalleryApplication
        
      

之后就可以build我们的项目了。。

在build项目的时候发现了如下的错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project gallery: There are test failures.
[ERROR] 
[ERROR] Please refer to /var/jenkins_home/workspace/gallery-server/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] The forked VM terminated without properly saying goodbye. VM crash or System.exit called?

查找了很多原因,最后发现可能是jdk版本的问题导致spring boot依赖的maven-surefire-plugin有问题。

https://stackoverflow.com/questions/23260057/the-forked-vm-terminated-without-saying-properly-goodbye-vm-crash-or-system-exi

https://stackoverflow.com/questions/53010200/maven-surefire-could-not-find-forkedbooter-class

https://blog.csdn.net/TeamLeader_08/article/details/78543663

https://blog.csdn.net/while_insist/article/details/85265701

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第26张图片

所以我们要做的就是升级一下插件的版本。

	
        maven-surefire-plugin
        3.0.0-M1
      

之后就可以再次build一下我们的项目了。。

然后就可以看到我们的项目build success了。。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第27张图片

tomcat中spring boot也启动了。。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第28张图片

之后我们还可以配置一个build monitor view插件

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第29张图片

之后就可以创建我们自己的view
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第30张图片

然后添加我们的项目。。

使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第31张图片

最后完成。。
使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat_第32张图片

你可能感兴趣的:(Spring,Boot,Docker,Jenkins)