docker安装jenkins并且通过jenkins部署项目(超详细and靠谱)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、简介
本文主要记录如何通过docker安装jenkins并且通过jenkins部署项目最终效果是只要在jenkins对某个项目点击构建jenkins就会去gitLab上拉取最新项目的最新代码然后根据你自己项目的pom.xml文件把项目打包成jar并且自动把这个最新的jar运行起来达到一键式构建的目标。

二、操作
(1) 首先得先在服务器上装好这三个东西: jdkgitmaven。不知道怎么安装的同学可以移步到我写的这三篇文章中JDK安装maven安装git安装

(2) 好完成上面三个软件的安装以后接下来是正题开始

docker   pull   jenkins/jenkins:2.344      #拉取jenkins镜像
docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home   -v  /usr/local/maven/apache-maven-3.8.5:/usr/local/maven   -v /usr/local/git/bin/git:/usr/local/git    -v /etc/localtime:/etc/localtime --name myjenkin 镜像id   #启动jenkins镜像

上面的启动jenkins镜像是最重要的这个指令里面包含了git和maven的文件映射

-v  /usr/local/maven/apache-maven-3.8.5:/usr/local/maven   

解释这里是将本地项目中的apache-maven-3.8.5映射到/usr/local/maven注意了这里的服务器的maven地址你们要根据自己自身的安装地址来灵活选择我这里的maven安装地址是/usr/local/maven/apache-maven-3.8.5。

-v /usr/local/git/bin/git:/usr/local/git

解释将服务器中的git映射到jenkins容器中我这里的服务器上的git的安装地址是/usr/local/git/bin/git同样的童鞋们也要根据自身的git安装地址来选择。

jenkins容器启动以后咱们就需要到阿里云或者是腾讯云中将端口为10240打开具体怎么打开10240端口你们也可以看我写的阿里云如何开放端口我是不是有点太贴心了~~~

(3) 接下来就可以见证奇迹了浏览器访问你的服务器ip:10240。不出意外你就能访问到jenkins了。
在这里插入图片描述
首先映入眼帘的是这个jenkins需要你输入初始密码你就到上面图片的提示的路径下把初始密码拷贝过来/var/jenkins_home/secrets/initialAdminPassword这个就是路径啦去拷贝吧。
在这里插入图片描述
接下来这里咱们选择“安装推荐的插件”这个安装推荐插件的时间可能会比较久请耐心等待。

(4) 好现在咱们还需要再安装两个插件 publish over ssh和Maven Integration plugin 同学可以点击 系统管理->插件管理 -> 可选插件中进行输入安装。如下图所示
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果看不懂英文那么同学们还可以再安装一个中文插件如下图输入chinese就可以看到。
在这里插入图片描述

(5) 安装好上一步中的几个插件之后接下来需要在jenkins中配置一下git和mavn: 同学可以依次点击系统管理 -> 全局工具配置 -> 找到Git和Maven
在这里插入图片描述
在这里插入图片描述
下图是Git如果没有那些什么NamePath to Git什么的额输入框那么可以点击一下Add Git按钮然后依照图中内容输入没有报红字提示即表示配置成功了。
在这里插入图片描述
下图是Maven的配置
在这里插入图片描述

(6) 配置好Git和Maven以后接下来是比较复杂的一个环节配置全局凭据这个全局凭据看起来高大上其实挺好理解就是一个配置项然后你配置好以后你就可以通过jenkins登录到你想进入的那台服务器里面你还可以在那台服务器上执行你设计的指令。而咱们第二步中安装的publish over ssh插件就是用来干这事的在这之前为了文章的篇幅不要太长我把一部分内容写在这篇文章中centos7.6生成ssh私钥与公钥大家一定要先依照此文章做完再来继续阅读本文。
想必大家已经看完我我刚刚说的那篇文章那么请童鞋们把在那边文章的生成的私钥找到我们待会有用哦。
童鞋们依次点击 “系统管理” -> “系统配置” -> Publish over SSH
在这里插入图片描述
在这里插入图片描述
如下图所示这是如何让jenkins能够登录远程服务器的配置
在这里插入图片描述
在这里插入图片描述
完成以上配置以后可以点击Test configuration按钮如果显示success就代表服务器配置成功了你的jenkins可以远程登录服务器了。
在这里插入图片描述

(7) 做足了前面准备工作童鞋们你们还得再看一篇文章我不是故意的但是确实得这样我如果写在一起真的篇幅太长了如果你们觉得我是故意给自己引流那你们可以取百度搜一下"gitLab仓库怎么生成ssh keys"看看其他大佬的我自己写的文章在这里通过ssh keys拉取gitLab代码。终于可以来新建一个任务了
在这里插入图片描述
在这里插入图片描述
然后童鞋们请直接看到”源码管理“
在这里插入图片描述
依次点击 Git - > Add Repository -> 添加(jenkins凭据)

在这里插入图片描述
下图是添加凭据
在这里插入图片描述
UserName是你的gitLab用户名然后点击Enter directy点击Add然后把我刚刚叫大家搜索的“gitLab仓库怎么生成ssh keys”这里面生成的私钥找出来也就是"id_rsa"文件把这个私钥放到里面。
在这里插入图片描述
最后点击“添加按钮”即可。
在这里插入图片描述
如下图所示当咱们添加好凭据之后就可以填上gitLab的代码地址然后选择咱刚刚新添加的凭据我这里的凭据名字就叫做lzcwxh1314。
在这里插入图片描述
好最复杂的凭据之后接下来咱们需要选择要拉取的代码分支童鞋们根据自身情况灵活配置。
在这里插入图片描述

(8) 配置好上一步的Git之后咱们还需要配置一下如何打包
选择 Pre Steps -> 填入如下图的指令
在这里插入图片描述

pom.xml

clean install -Dmaven.test.skip=true

(9) hellohello有没有同学跟着做到这一步了这真的是最后最后一步了请相信我。接下来还需要做最后一个配置
选择构建后操作-> 选择添加构建后的步骤
在这里插入图片描述
然后选择Send Build artifacts over SSH
在这里插入图片描述
选择添加之后会出现如下的配置卡这里的SSH Server咱选择第六步中配置好的SSH Server。
在这里插入图片描述
因为咱们做了docker的文件映射了所以jenkins容器上生成的jar包其实也会映射到咱们本机上所以咱们就无需将Jar包通过publish over ssh插件再发送了所以这里我只需要执行代码即可。
在这里插入图片描述

#第一步是进入到服务器中生成好的jar包的目录下
cd /var/jenkins_mount/workspace/pay-wx-learn/target

#第二步是根据jar包的名字获取运行的pid并且将该进程杀死
ps -ef | grep pay-wx-learn-0.0.1-SNAPSHOT.jar   |   grep -v   grep   |   awk '{printf $2}'  |  xargs kill -9

#最后一步就是将这个jar后台启动了并且将日志输出到warpper.log中。
nohup java -jar pay-wx-learn-0.0.1-SNAPSHOT.jar >warpper.log &2>1 &

三、校验
终于啊神功告成了咱们可以到enkins的首页这边来构建了
在这里插入图片描述
然后点一下这个进度条就可以详细看到此次构建的内容
在这里插入图片描述
同学们可以再点一些控制台输出即可看到对应的日志信息了。
在这里插入图片描述
在这里插入图片描述

总结一下jenkins通过docker部署挺简单的比较烦人的就是里面的各种配置其中最为头疼的是源码管理中的Git配置还要Publish over SSH中登录远程服务器这两个都涉及了生成SSH keys的私钥公钥如果不了解私钥公钥真的会一下子懵掉说实话我自己碰壁研究了半个月才算是勉强成功了所以自己赶紧写下来这篇博客记录一下如果你跟着我的博客最后还是没有成功我先和你说个对不起然后你可以私聊我一下或者在评论区留言我真挺愿意和同学们一起探讨解决的。

好了以上就是我的分享了祝大家事事顺利天天好开心~

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker