基于docker搭建Jenkins+git+python+allure

实现方式

docker+jenkins+python 执行自动化框架,生成allure报告
1、服务器上安装docker(略)
2、创建jenkins容器
3、使用Dockerfile创建有接口自动化框架执行环境的python镜像
4、根据python镜像创建容器,拉取git上的代码,使用python执行接口自动化框架,生成allure报告
5、执行完成之后自动删除容器

一、创建jenkins容器

1、拉取jenkins镜像

docker pull jenkins/jenkins:latest

 

 2、创建本地目录,后续挂载jenkins的工作目录

mkdir /home/jenkins_home

3、创建jenkins容器

docker run -itd --name=myjenkins -p 1111:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest
-i 运行容器
-t 登录容器
-d 后台运行,使用exit退出容器之后,容器不会被停止
-p 端口映射,1111:8080 docker的8080端口映射为宿主机的1111
-u=root 指定root用户进行访问
-v 目录映射 将宿主机的目录/文件共享给容器
-v /etc/localtime:/etc/localtime:让容器使用和服务器同样的时间设置
-v /usr/local/jenkins:/var/jenkins_home:将容器中 Jenkins 的工作目录挂载到服务器的 /usr/local/jenkins
-v /var/run/docker.sock:/var/run/docker.sock:将docker.sock映射到jenkins容器中
docker.sock文件是docker client与docker daemon通讯的文件
-v /usr/bin/docker:/usr/bin/docker:将宿主机docker客户端映射到jenkins容器中
 
创建完成之后,使用docker ps查看运行的容器

 

4、访问jenkins:当前服务器ip:jenkin的映射端口

 

 jenkins入口页显示密码文件为:/var/jenkins_home/secrets/initialAdminPassword,/var/jenkins_home目录我们在宿主机上做了映射,因此可直接在服务器上的/home/jenkins_home/secrets/initialAdminPassword去查看密码

 

 

 

 建议先不安装jenkins的默认插件,后续有需要自己安装

 

 

 设置jenkins的用户

 

 

二、本次项目需要的插件安装

git、allure

 

  

 

 

 

 安装成功

 

三、创建流水线,关联git仓库地址

 

 

 

 Source Code Management:选择Git,首次需要添加git账号

 

 输入git账号密码,添加

 

输入要拉取的git仓库地址,选择刚刚添加的账号

 

 

 流水线创建完成之后,可构建一次进行验证,拉取的git代码到容器中的/var/jenkins_home/workspace/,或者容器挂载的宿主机目录下去查看

 

 

 

四、使用Dockfile创建python镜像

1、服务器上创建文件my_lib.txt(文件名称自定义),存放python要安装的依赖包内容

my_lib.txt

复制代码

Faker==13.3.2
PyMySQL==0.9.3
PyYAML==5.3
adbutils==0.7.3
allure-pytest==2.8.12
ddt==1.2.2
httprunner==3.0.12
mock==4.0.1
openpyxl==3.0.2
pytest==5.4.2
pytest-html==2.1.1
jsonpath==0.82
requests==2.22.0
requests-toolbelt==0.9.1

复制代码

2、创建Dockerfile文件

书写规则:Dockerfile 文件名称首字母大写,名称固定
文件内容:第一行必须是镜像文件的来源信息,若本地没有该镜像,会自动拉取dockerhub上面的
第二行,镜像维护人,自定义
第三行,登录容器之后的默认目录(若没有该目录会自动创建)
第四行,镜像中需要添加的文件\依赖。ADD ./my_lib.txt /app 将当前目录的my_lib.txt文件添加容器的/app目录下
第五行,RUN,镜像构建过程中执行的命令
第六行,CMD,创建容器之后执行的命令
tips:docker run创建容器之后,若传了执行命令,会把cmd的命令覆盖

FROM python:3.7.15
MAINTAINER Tester
WORKDIR /app
ADD my_lib.txt /app
RUN pip install -r my_lib.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python","pytest_run.py"]

 

 

 

 

3、执行Dockerfile

docker build -t ImageName:TagName dir
ImageName - 镜像名称
agName - 镜像的标签
dir - Dockerfile所在的目录

docker build -t python:3.7.15 .

 出现success表示成功

五、jenkins项目配置:构建执行shell代码,生成python容器

 docker run --rm -w=$WORKSPACE --volumes-from=jenkins容器名称 python镜像名称:TAG

 docker run --rm -w=$WORKSPACE --volumes-from=myjenkins python:3.7.15

通过--volumes-from将jenkins工作空间的代码映射到python容器,会生成匿名容器卷,--rm 容器停止时,容器被自动删除,匿名卷也删除

1、找到jenkins上刚刚创建的流水线,configure,选择用shell脚本来构建

 

 

 

 

六、配置allure报告

tips:Jenkins上需要有jdk环境,才能生成allure报告

Jenkins:Manage Jenkins的Global Tool Configuration,配置jdk和allure

 

 

 

在项目的configure中,Post-build Actions选择Allure Report

 

 

七、构建流水线

构建成功,可点击allure报告查看结果

 

 

 

 

 

 

 

 

 

 

 

 


posted @   云胡  阅读(1229)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示