Docker+jenkins 运行 python 自动化
一、实现思路
- 在 Linux 服务器安装 docker
- 创建 jenkins 容器
- 根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)
- 运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目
- 执行完成之后删除容器
二、 环境准备
- Linux 服务器一台(我的是 CentOS7)
1、有云服务器的同学直接用云服务器 - 在服务器上正确安装 docker
1、拉取 jenkins 镜像
jenkins/jenkins:alpine
2、拉取 python3 镜像
docker pull python:3-alpine
三、创建 jenkins 容器
- 命令
docker run -dit --name=jenkins_dxl -p 1111:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine - 参数说明
-i:表示运行容器
-t:表示容器启动后会进入其命令行
-d:守护式方式创建容器在后台运行
--name:容器名称
-p 1111:8080:端口映射,宿主机端口:jenkins 容器端口
-u=root:指定容器用户为 root 用户
-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 容器中 - 运行效果
1、看到返回容器 ID 表示 jenkins 容器创建成功
四、配置 jenkins 容器
- 浏览器访问 http://192.168.x.xx:1111,来到 jenkins 解锁页面
1、http://192.168.x.xx为自己安装docker的linux环境ip地址
2、1111为宿主机映射端
2.在 Linux 服务器执行命令获取管理员密码
1、执行命令:docker logs jenkins_dxl
3.复制密码输入到密码框,点下一步,来到如下页面(中间需要等待一段时间,大概 1 分钟左右,耐心等待)
4.取消默认插件勾选,进入下一步
5.设置管理员用户名和密码(以后就用这个账号密码登陆你的 jenkins)
6.配置实例
7.jenkins 初始化完成看到如下界面
五、 jenkins 安装插件
点上一步骤开始使用 jenkins,来到如下界面
- 点 Manage Jenkins 来到如下页面
点 Manage Plugins 安装插件
1、Git 插件安装
2、Docker 插件安装
3、HTML Publisher 插件安装
4、安装完成后重启 jenkins 容器
docker restart jenkins_dxl
六. 创建jenkins任务
1、重新登陆jenkins,点New Item
2、创建自由风格的项目
七. 配置jenkins任务
1、配置构建记录保留规则
2、Git仓库配置
3、配置构建后操作
1)添加构建后操作模块
2)配置运行脚本
3)配置jenkins中展示的测试报告路径
4)保存项目所有配置
八、构建有项目执行环境的python镜像
1、将项目依赖包导出来到req.txt文件中,txt文件名称可以随意写
pip freeze > req.txt
2、在宿主机(安装docker的机子)上新建一个目录(我的目录在/app),将req.txt文件复制进去
3、在app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)
4、req.txt文件内容如下:
- ddt==1.4.4
- Faker==13.3.2
- jsonpath==0.82
- openpyxl==3.0.9
- pip==22.0.4
- PyMySQL==1.0.2
- requests==2.24.0
- unittestreport
- requests-toolbelt==0.9.1
5、Dockerfile内容以及解释如下:
- FROM python:3-alpine #基于python:3-alpine这个基础镜像镜像构建镜像
- WORKDIR /app #切换工作空间目录
- ADD ./req.txt /app #将python项目依赖包文件添加到镜像
- RUN pip3 install -r req.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包
- CMD ["python3", "start_all.py"] #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件
6、在app目录下执行镜像构建命令:
docker build -t python3:dxl .
-t:镜像名称
点(.):点表示Dockerfile文件所在的目录,我现在在app目录下,点表示当前目录
构建成功后会看到一个新的镜像(docker images)
九、 完成build.sh
1、build.sh内容如下:
- echo "运行容器python执行自动化" #输出日志
- #-w=$WORKSPACE:指定workspace
- #--volumes-from=py48jenkins:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
- docker run --rm -w=$WORKSPACE --volumes-from=jenkins_dxl python3:dxl
- echo "python执行自动化执行成功"
2、将build.sh复制到你的项目根目录下
3、提交代码到Git仓库
git add .
git commit -am'update'
git push
十、去构建jenkins任务
1、回到jenkins首页,找到项目点构建
2、查看构建过程
3、查看构建过程(python自动化项目的输出日志也在这里可以看到)
4、查看测试报告
十一、解决测试报告没有样式的问题
把这个代码放进去执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
执行成功返回是空,说明没问题
十二、重新构建可以看到有样式的测试报告
Docker+jenkins 运行 python 自动化的更多相关文章
- bat文件一键运行python自动化脚本
目标:建立一个双击即可运行自动化脚本的机制,而不用每次运行编译器,方便测试人员用户体验. 方法: 1. 将所有代码打包成exe文件,但一旦修改,又要重新打包. 2. 将运行代码写成bat文件,双击即执 ...
- jenkins运行Python
法一: 配置中构建执行Windows批处理命令如下 立即构建后,报错如下,提示python 不是内部或外部指令 修改Windows批处理指令如下: 再次“立即构建”则正常 法二: 安装Python插件 ...
- Jenkins运行python脚本出现 configparser.NoSectionError: No section: 'XXXXXX'
原来的代码如下: def get_test_config(tag, key, config="config.ini"): cf = configparser.ConfigParse ...
- 从零搭建docker+jenkins 自动化部署环境
从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...
- docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...
- Selenium+Python+jenkins搭建web自动化测测试框架
python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/ (Wind ...
- 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...
- springboot docker jenkins 自动化部署并上传镜像
springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1. ...
- Jenkins(3)拉取git仓库代码,执行python自动化脚本
前言 python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了 新建项目 打开Jenkins新建一个自由风格的项目 源码管理 Repository ...
- Jenkins + Docker + ASP.NET Core自动化部署
本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写 ...
随机推荐
- vuex状态管理器
vuex核心概念 // vuex中一共有五个状态 State Getter Mutation Action Module import Vue from 'vue' import Vuex from ...
- 互联网公司IT系统架构进化之路
一日,与一高手在茶馆聊天.他问道:在鞋厂剑派这两年,可习的什么高深的剑法?我不由一愣,细细想来,这两年每日练习的都是简单的劈砍动作和一些简练的套路.并没有去练什么高深的剑法.不过鞋厂剑派在江湖上也算小 ...
- 【音视频】Qt中引入FFmpeg
音视频有关的部分都是使用标准C++的,只有界面的部分才会使用Qt的内容.这样也是为了方便以后移植到其他系统上. 音视频开发中最常做的就是编解码的操作.以H.264为例:如果想要自己实现编码h.264, ...
- linux 部署python 系统服务管理命令 yum源设置 linux定时任务 python在linux的虚拟环境安装以及使用
安装python3 三种方式 ==linux下很多脚本默认都用python2, 所以不要把python3的执行文件改为python,因为linux里默认python就是运行python2版本 == y ...
- 新建VUE项目操作步骤(win7)
在win7下,新建一个VUE项目操作步骤说明 1 检查vue的相关软件环境 vue init webpack 项目名称 创建 vue 项目成功 进入到项目目录 然后 npm run dev 启 ...
- 获取网页数据 Qt 从客户端发起http响应
Qt 从客户端发起http响应 获取网页数据实现代码 void Test::GetHttp(QString strServerIP,QString strUserName,QString strPas ...
- memoのQt自动调整窗口尺寸
折腾了好久,好久.终于搞出一个自认为还算可以的方案: QTimer::singleShot(0, this, [this]{ this->adjustSize(); }); 这个解决方案确实有点 ...
- 脚本安装zabbix
把zabbix.repo上传到 /etc/yum.repo.d/ 如果出现这种情况:yum -y remove httpdyum -y install httpdsystemctl start htt ...
- MySQL Atlas 读写分离软件介绍
MySQL Atlas介绍 目录 MySQL Atlas介绍 一.MySQL Atlas介绍 1.1.1 MySQL Atlas介绍 1.1.2 Atlas基本管理 一.MySQL Atlas介绍 1 ...
- sonar使用
代码质量检查工具 sonar 1. 下载,版本sonar 4.5.1 运行bin下的bat文件,浏览器中访问: http://localhost:9000 , 成功. 2. 修改数据库为mysql数据 ...