docker搭建jenkins配置持续集成部署
前言
本人至少重复搭建过 5 次环境,基本上所有踩过的坑文章中都有提及到,现在百度到的一些资料,基本上要么不全面,要么搭建过程中会遇到很多异常,这篇文章会讲到如何搭建 docker
环境,并且安装 python
、 jdk
allure
环境,结合 Gitee
码云来实现持续集成,全程图文教程,一文搞定持续集成部署!
前提条件
Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker!
通过 uname -r
命令查看当前的内核版本
安装docker
第一步:检查并清除系统残余项,并安装Docker依赖环境
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
执行结果:
我这台是新租的服务器的,所以没有依赖项存在。(为了保障docker的顺利安装还是执行了一下)
安装下载Docker依赖的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
运行结果:
这里内容比较长,我只截取了结尾部分。如果你和我一样,则表示安装成功了。
添加阿里云的软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
运行结果:
以后每个软件都优先从阿里云的软件库中下载,如果阿里云仓库没有,会去docker.hub中下载。(与maven仓库同理)
### 更新yum缓存(为了保证能更新和下载需要的服务:如docker)
sudo yum makecache
## 第二步:Docker依赖环境搭建好之后,安装并启动Docker
安装Docker(CE-社区版)
sudo yum -y install docker-ce
由于需要下载并安装docker,有的机器会有点慢,请耐心等待!
同样这里内容较长,我只截图了末尾的部分,看到complete!下载并安装成功!
启动Docker服务
sudo systemctl start docker
以上我们已经将Docker安装好了,接下来测试下Docker是否可以顺利启动:
docker info
我们可以看到Docker已经启动成功,而且容器与镜像数都为0,是一个全新的docker服务
设置开机自启(非必设项,根据自己习惯设置)
sudo systemctl enable docker
到此为止,Docker就已经下载并安装完成!
查看docker版本
docker -v
下载jenkins镜像
docker pull jenkins/jenkins:2.289.3-centos
jenkins/jenkins:2.289.3-centos 为jdk-8,其他版本需求,docker仓库选择需要的镜像版本
等待下载完成
挂载目录
mkdir -p /home/yushaoqi/jenkins_node
升级权限:
chmod -R 777 /home/yushaoqi/jenkins_node
启动镜像
docker run -d -uroot -p 8989:8080 --name jenkins1 -e LANG=C.UTF-8 -v /home/yushaoqi/jenkins_node:/var/jenkins_home jenkins/jenkins:2.289.3-centos
查看jenkins镜像是否启动成功
docker ps
进入容器
docker exec -it -uroot jenkins1 bash
前置准备,更新包
# 获取最新的软件包
yum update
如果和我一样有抛如下异常,可以参考下方内容,处理该异常,如果没有,则直接跳过
1、第一步,首先进入到 yum 的 repos 目录
cd /etc/yum.repos.d/
2、第二步,修改 centos 文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
3、第三步,生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)
yum makecache
4、第四步,运行 yum update 并重新安装 vim
yum update -y
yum -y install vim
提前安装,以便接下来的配置操作
这里基本上就是一个命令一个命令的运行,基本上没有什么问题,如果看到每个命令运行完成之后都展示Complete就都安装安装成功了
yum -y install gcc automake autoconf libtool make
yum -y install make*
yum -y install zlib*
yum install openssl-devel -y //
yum -y install sudo
容器内安装python3环境
# 进入jenkins_home目录
cd /var/jenkins_home/
# 创建python存放路径
mkdir python3
cd python3/
# 安装wget
yum -y install wget
# 下载python3
wget http://npm.taobao.org/mirrors/python/3.7.9/Python-3.7.9.tgz
# 解压文件目录
tar -zxvf Python-3.7.9.tgz
# 查看解压后的文件
ls
# 更改解压后文件包名(可选项)
mv Python-3.7.9 py3.7
make编译安装
在py3.7目录下
这里会时间相对较长,请耐心等待
1、第一步
cd py3.7
2、第二步
./configure --prefix=/var/jenkins_home/python3 --with-ssl
3、第二步
make
4、第四步
make install
到这里python已经安装完成啦,试试python3是否能够进入python编辑器,无法进入加个软链接
添加,软连接
添加python3软链接
ln -s /var/jenkins_home/python3/bin/python3.7 /usr/bin/python3
添加pip3软链接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
这个时候使用python3命令已经可以进入python编辑栏啦!
安装allure
官网下载 allure 包
https://github.com/allure-framework/allure2/releases
选个最新版本的去下就行,或者自己挑一个版本,这里我的版本是2.17.3。
下面打开一个新的服务器页面,退出到容器外面
# 使用linux中的rz或者sz命令,可以讲电脑中的文件上传到linux服务器中,如果已经安装过,可以忽略
yum install lrzsz
可以看到我本地电脑C盘下载了allure 2.17.3版本的压缩包
下面进入docker挂载目录
cd /home/yushaoqi/jenkins_node
# 输入rz命令,然后会出现一个上传文件的弹窗,选择我们本地安装好的allure的安装包
rz
安装成功之后,我们到容器内部
cd /var/jenkins_home/
ls
可以看到我们挂载目录之后,直接在服务器挂载的目录中上传的文件,在容器内部可以看到这个压缩包了
解压allure
unzip allure-2.17.3.zip
赋予文件夹所有内容最高权限
mv allure-2.17.3 allure
chmod -R 777 allure
配置 allure 和 py 环境变量
记得一行一个回车哦
cat >> /root/.bashrc << "EOF"
export PATH=/var/jenkins_home/allure/bin:$PATH
export PATH=/var/jenkins_home/python3/bin:$PATH
EOF
更新环境变量配置文件
source /root/.bashrc
验证环境变量
allure --version
python3 --version
配置 JDK 环境变量
cat >> /root/.bashrc<< "EOF"
export PATH=$JAVA_HOME/bin:$PATH
EOF
更新环境变量配置文件
source /root/.bashrc
配置jenkins
上面我们docker环境都安装完成了,我们再来配置jenkins,此时我们通过服务器的 ip 地址 + 8989 端口就可以直接访问我们的jenkins
如果你的访问不了,可以查看我的这篇博客 《Linux 部署项目并启动后,外网无法访问的几个原因》
在docker中查看jenkins
vi /var/jenkins_home/secrets/initialAdminPassword
复制上图中的密码到jenkins,然后输入:q 退出当前页面
:q
选择安装推荐的插件,下面我们只需要漫长的等待即可
安装好之后,创建管理员用户,这里自己设置,设置好点击「保存并完成」即可。
安装Gitee插件
Gitee配置
链接名随便填,jenkens内唯一不能重复
访问码云私人令牌获取地址
生成新的令牌
保存这个密钥,以免日后会有需要,关闭之后,平台就不会在展示这个私人令牌了
新建项目
自定义项目名称,然后构建一个自由风格的软件项目
选择gitee链接,配置源码管理中仓库地址,Credentials中添加输入码云账号密码
配置gitee webhook
先点击生成,然后复制这段密码
然后打开我们Gitte的仓库,到「管理」中,点击「webhooks」
配置好之后,先点击保存
此时我们先构建一次,可以在控制台上面看到我们的项目路径
docker中进入这个项目地址
cd /var/jenkins_home/workspace/ApiTestAuto2
ls
安装我们项目的依赖包
pip3 install -r requirements.txt
开始安装我们的依赖,注意,如果此时有部分安装包提示安装失败,没有关系,可以跳过这些安装包,单独下载,因为有些版本对应不上的缘故
依赖库安装好之后,再次进入jenkins,配置shell,配置内容如下
这个时候我们构建,项目就可以正常运行了,但是此时我们还少了allure报告的配置
#!/bin/bash
cd /var/jenkins_home/workspace/ApiTestAuto2
python3 run.py
配置allure
先安装allure插件,安装好之后我们重启jenkins
全局配置中配置allure命令行(首先要去下载allure-commandline,如果是Linux系统,allure命令路径换成Linux下的commandline的路径即可)
设置好之后,点击「应用」,在点击「保存」
项目里面设置了配置allure
注意上面的Path 要和我们配置的路径是同一个