持续集成与docker配置
1.使用场景
使用Jenkins实现自动/定时运行接口测试脚本,并生成对应的测试报告
2、jenkins的介绍
Jenkins是一个开源软件项目,是基于Java开发的一种工具,可扩展的持续集成、交付、部署(软件/代码的编译、打 包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建 或持续集成。
官网:https://jenkins.io/
官方文档:https://jenkins.io/zh/doc/
Jenkins特点
- 开源免费
- 安装配置超级简单
- 跨平台,支持所有的平台
- web形式的可视化的管理页面
- 分布式构建
- 丰富的插件支持
3、docker的介绍
Docker 是一个开源的应用容器引擎,方便快速搭建环境、部署应用
官网:https://www.docker.com
Docker应用场景
- 应用的自动化打包和发布
- 自动化测试和持续集成、发布。
4、安装和配置
CentOS安装:
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
docker的安装及配置步骤:
1. 查看内核版本uname -a,建议3.10以上
2. yum更新
yum update
3. 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
4. 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5. 查询版本,并安装
yum list docker-ce --showduplicates | sort -r
6. 安装Docker
yum install docker-ce-17.12.1.ce
7. 验证安装是否成功
docker version
8. 启动docker,并加入开机启动
systemctl start docker
systemctl enable docker
Jenkins安装及配置
安装及配置步骤:
1. 下载地址:https://jenkins.io/zh/download/
2. 选择docker版本下载 docker version
3、或直接访问https://hub.docker.com/r/jenkins/jenkins
4. Centos下安装
切换root用户 su root
执行命令:
docker pull jenkins/jenkins:lts
查看下载完成的镜像
docker images
启动Jenkins镜像
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
启动参数解释:
-d 后台运行镜像
-p 80:8080 将镜像的8080端口映射到服务器的80端口
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
-v jenkins:/var/jenkins_home /var/jenkins_home目录为jenkins工作目录,我们将硬盘 上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置。
--name jenkins 给容器起一个别名
浏览http://localhost并等到Unlock Jenkins页面出现。
注意,docker版的jenkins`,所以这个路径不是服务器的路径,而是容器内的路径。我们可以通 过如下命令从容器中获取到初始化密码
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
继续使用后面步骤设置向导完成设置。
5、docker的简单使用
列出本地主机上的镜像
docker images
查看容器状态
docker ps -a
容器启动命令
Docker start container-name(jenkins)
Docker stop container-name
docker restart container-name
进入正在运行的镜像
docker exec :在运行的容器中执行命令
语法
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
容器内安装命令
apt-get update
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最 新的软件包。
等更新完毕以后再敲命令,即可
apt-get install vim
遇到的问题和解决:
1、docker中开放端口IPv4 forwarding is disabled. Networking will not work解决方法
- 编辑 vi /etc/sysctl.conf
- 添加 net.ipv4.ip_forward=1
- 重启network服务 systemctl restart network
2、处理docker下载慢
- 编辑docker配置文件vi /lib/systemd/system/docker.service
- 将这一行:ExecStart=/usr/bin/dockerd 修改为: ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mirror.aliyuncs.com
3、开放防火墙端口
- 查看已经开放的端口:firewall-cmd --list-ports
- 开启端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
- 重启防火墙:firewall-cmd --reload #重新载入firewall配置,使配置生效
4、Doker容器不能访问网络
执行命令
#nmcli是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文 件,永久生效
nmcli connection modify docker0 connection.zone trusted
#重启docker服务
systemctl restart docker.service
进入容器终端并且的保留为容器终端的输入形式(-it和bash的结合作用)
docker exec -it CONTAINER_ID bash
使用ping命令,验证网络是否连通 ping www.baidu.com
5、Jenkins插件安装及配置
安装Allure 插件
进入jenkins->系统管理 ->管理插件->可选插件 直接输入地址:http://localhost:8080/pluginManager/available
搜索框中输入 allure,点击安装
配置Allure Commandline
安装步骤:1. 确保 allure 插件已经安装成功
2. Manage Jenkins——->Global Tool Configuration——>Allure Commandline 部分,点击添加Allure Commandline
3、填写name(可以随便取名,主要是用来标识),可以选择自动安装或指定安装目录
4、如果指定输入安装目录,需要下载allure
下载 allure.zip 下载地址:https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.7.0
解压到本地目录、配置allure.bat的环境变量Path; 在命令行中运行allure,确认环境变量配置成功
5、Jenkins 配置 git
安装步骤:
Git下载 下载地址:https://git-scm.com/downloads
linux安装: yum install git
Git配置:
linux默认已安装完,不需修改配置,如果windows则需要配置 Manage Jenkins——->Global Tool Configuration——>Git 点击添加
Jenkins 配置及运行
创建Jenkins项目
步骤: 1. 进入Jenkins主页 2. 点击新建 3. 输入项目名称 ,并点击构建一个自由风格的软件项目。 4. 点击确定
配置Jenkins项目
General配置 步骤: 勾选 GitHub project,输入 Project url
源码管理配置 步骤: 1. 勾选 Git,输入 Repository URL 2. 点击 Add,点击 Jenkins 3. 输入 github 用户名和密码,点击Add
构建触发器 配置:
步骤: 勾选 Poll SCM,日程表中填写 */1 * * * *
构建 配置
Linux
#python安装版本尽量与代码编写版本一致,由于linux自带安装的python2,需要单独安装python3 如果不识别pip或python,则需要使用绝对路径来调用
pip3 install -r requirements.txt
python3 run.py
``` requirements文件生成
# 使用以下命令会在项目根目录产生一个 requirements.txt 文件
# 该文件会列出本虚拟空间中所使用的所有包及其版本 pip freeze > requirements.txt
# 使用以下命令会安装项目根目录的 requirements.txt 文件中所有的依赖的指定版本 pip install -r requirements.txt
构建后操作-报告 配置 步骤:
1. 点击 增加构建后步骤,选择Allure Report
2. 在 path 中输入 allure 报告的 xml 所在的目录名称 report/result
构建执行
配置到报告步骤后,点击保存。此时,我们可以构建这个项目,所谓构建也就是运行的意思。
- 自动构建
- 手动构建
邮件
步骤: 1. Jenkins->配置->邮件通知 2. 设置相关信息
docker的一些使用网站:Docker 教程 | 菜鸟教程 (runoob.com)