docker+jenkins实现持续集成

持续集成的概念我就不多说了,网上一大堆,今日主要讲讲怎么通过docker 和jenkins实现项目的持续集成。看着简单,网上完整教程很少,本人摸索很久才搞定!!!

一、首先安装docker。安装过程可以自行百度

二、通过docker拉取jenkins镜像:拉取镜像也很简单,可直接通过docker pull jenkins即可获取。也可从docker.hub上获取官方长期支持的镜像:docker pull jenkins/jenkins:lts

三、获取到镜像后。可通过docker images来查看 已获取到的镜像列表

docker+jenkins实现持续集成

已有的镜像列表

四、开始运行jenkins镜像

运行jenkins前首先明确几点:

1、端口映射:通过端口映射的方式将容器的相关端口映射到主机上

(1)jenkins是一个镜像,通过运行jenkins镜像,产生jenkins容器,容器寄主在主机上,想访问jenkins容器,就得通过主机访问,此时就需要一个容器与主机的映射端口:-p 主机映射端口号:容器端口号(-p 12000:8080)

(2)同理,访问了jenkins容器后,需要对jenkins的持续集成进行相关配置与项目的配置,项目在jenkins容器中,访问项目也需要将项目端口号映射到主机,同上-p 主机映射端口号:项目端口号(-p 8090:8090)

2、挂载:通过挂载的方式将容器的文件路径挂载到主机目录下

(1)maven仓库挂载:减少每次构建项目时maven依赖从远程拉取的工作-v 主机目录:jenkins目录(-v /opt/repository:/opt/repository)

(2)jar包文件挂载:将打好的jar包通过挂载到主机上

了解以上几点后,开始运行jenkins

docker run -d -u root -p 11000:8080 -p 11089:8089 -v /opt/repository/:/opt/repository/ -v /var/jenkins_home/:/var/jenkins_home/ -v /jenkins/project/:/jenkins/project/ 5907903170ad

通过docker ps -s查看正在运行的镜像

docker+jenkins实现持续集成

jenkins镜像已运行

接下来需要访问jenkins:http://localhost:11000

docker+jenkins实现持续集成

jenkins

稍等片刻。

docker+jenkins实现持续集成

根据提示寻找登录密码

cat /var/jenkins_home/secrets/initialAdminPassword
docker+jenkins实现持续集成

输入密码后,等待登录。

docker+jenkins实现持续集成

下载插件

选择 左边的install supported plugins下载插件,下载过程有点慢,请耐心等待。

插件下载完成后,完成用户信息,密码用登录的密码

docker+jenkins实现持续集成

在主机上将jdk与maven的目录复制到jenkins_home下

docker+jenkins实现持续集成

配置jenkins:

docker+jenkins实现持续集成

配置settings.xml与jdk和maven

docker+jenkins实现持续集成

docker+jenkins实现持续集成

配置完成后,需要再下载一个插件:Maven Integration

docker+jenkins实现持续集成

docker+jenkins实现持续集成

接下来开始配置项目了:

回到jenkins首先,create new job

docker+jenkins实现持续集成

配置git信息

docker+jenkins实现持续集成

配置打包信息与项目执行脚本

docker+jenkins实现持续集成

执行脚本:

#!/bin/bash -ile
project=jenkins.jar
pathName=springboot_jenkins
echo "拷贝文件"
rm -rf /jenkins/project/$project
cp /var/jenkins_home/workspace/$pathName/target/$project /jenkins/project/
echo "切换路径"
cd /jenkins/project/

pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo "杀死存在进程"
fi
BUILD_ID=dontKillMe
echo "执行"
nohup java -jar $project &
echo "启动成功!"

配置好之后,就开始构建项目了:

docker+jenkins实现持续集成

jenkins构建成功:

docker+jenkins实现持续集成

构建成功

docker+jenkins实现持续集成

现在访问项目:

http://ip:11089/test/a

docker+jenkins实现持续集成

项目运行成功

到此结束,以后只要把项目更新到git上,可以定时构建项目,也可以手动触发构建。


分享到:


相關文章: