这里就不细说怎么安装了,不知道怎么安装的可以看看我之前的博文:Docker安装Jenkins实现自动化构建部署到Tomcat,当时用的不是Pipeline流水线的方式进行构建。
我这次依然使用的是kitematic这款软件,但是这款软件的坑真的很多。。看起来一点都不是给小白使用的。所以如果你真的想玩好docker你还是别使用Kitematic这款软件,而已其实根本也不需要Kitematic,只是他提供了一些可视化的界面而已,功能并不是很强大可配置性也不高。但是本文我还是介绍一下Kitematic的使用,以及遇到的一些坑,总结一些经验教训吧。。
我们可以通过Kitematic来进行安装Jenkins,这里就遇到了第一个坑。。
在Kitematic中搜索jenkins,你可以看到官方的镜像。
但是坑的是,官方的镜像在安装一些插件的是会安装不了。。。也不是网络的问题,因为我换过很多其他的国内镜像也是一样的。。
下面就是一些设置国内镜像的方法:
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…
还有一点坑的是,使用Kitematic如果你点击Volumes,他可以帮你启动文件夹的挂载,挂载到你本地windows电脑,我觉得这一点是十分香的!,但是也有很多坑。
缺点好像是就是会重新启动,变成一个新的docker环境,所以最好是在一开始就点了,不然以后点击可能就会把你以前建的docker给毁掉了,变成一个全新的。貌似好像改端口号也是会这样,所以不太人性化,而且端口号也经常变。。
但是如果你以后还是先link到你本地windows的路径怎么办,记住不要点上面的按钮,你可以选择setting,然后选择volumes,然后在点上面的本地路径连接,这种方式就不会造成上面的问题。
正确安装jenkins直接看这里:
版本是2.168
之后就可以创建一个账户了。
登陆进入之后我们简单了解一下。
正常直接新建项目是不能建立maven项目的,需要下载插件。
之后新建项目的时候就可以选择maven工程了。
不过我们这次的重点是使用Pipline,所以我们要建的是pipline项目,但是在建立项目之前我们需要配置一些jenkins的环境。
因为这个镜像已经默认有java和git的环境了。所以事实上我们只需要安装maven。
我们需要到全局的工具配置上去配置我们的环境。。
我们这里直接选择从apache上面下载安装,或者你可以选择自己把maven包通过本地的共享文件下放到你的jenkins的目录下,自己解压安装和配置,使用 linux的命令 ln -s {你的maven路径}/bin/mvn /usr/bin/mvn
或者 ln -s {你的maven路径}/bin/mvn /usr/bin/mvn
,最好都配上。。这样就可以在你的docker里面直接使用mvn命令了。
现在我们先记住你配置的maven的名字,这里我设置的叫maven。
现在我们开始建立一个新项目。这个是我跟同事一起合作的工程,使用groovy写的,这里只是作为demo。
创建完成之后我们可以开始配置。
这里我只是演示一下轮询吧。。配置一下每分钟扫一次。
我们可以通过下面两个部分来帮助我们快速的写pipline script,这些就你们自己去研究吧。
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"
}
之后我们就可以保存了。
我们直接在docker上安装。
然后可以使用DOCKER CLI进入我们的tomcat中进行配置,或者可以打开虚拟机,然后进去配置都是一样的。。
我们可以使用docker ps查看现在正在运行的docker
之后我们可以使用命令 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
之后我们就可以重启我们的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
主入口需要作如下设置:
还有需要加上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
所以我们要做的就是升级一下插件的版本。
maven-surefire-plugin
3.0.0-M1
之后就可以再次build一下我们的项目了。。
然后就可以看到我们的项目build success了。。
tomcat中spring boot也启动了。。
之后我们还可以配置一个build monitor view插件
然后添加我们的项目。。