「硬核分享」Docker+jenkinsPipeline 运行实现 python 自动化

【深度教学】Docker+jenkinsPipeline 运行 python 自动化 目录 ​ 一、实现思路 二、环境准备 三、创建 jenkins 容器 四。 配置 jenkins 容器 五。 jenkins 安装插件 六。 创建 jenkins 任务 七。 构建有项目执行环境的 python 镜像 八、创建 build.sh 文件并放到项目根目录下 九、写 Jenkinsfile 文件并将放到项目根目录下 十、提交代码到远程仓库 十一、构建你 jenkins 任务 十二、解决测试报告没有样式的问题 一、实现... 阅读详情

一、实现思路

  1. 在 Linux 服务器安装 docker
  2. 创建 jenkins 容器
  3. jenkins 中创建 pipeline 项目
  4. 根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)
  5. 运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目
  6. 执行完成之后删除容器

二、环境准备

  • Linux 服务器一台(我的是 CentOS7)
    1、有云服务器的同学直接用云服务器2、没有云服务器的同学参考我的博客自己动手安装虚拟机吧
  • 在服务器上正确安装 docker
    1、拉取 jenkins 镜像jenkins/jenkins:alpine2、拉取 python3 镜像docker pull python:3-alpine

三、创建 jenkins 容器

  1. 命令
    docker run -dit --name=jenkins_save01 -p 9999:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine
  2. 参数说明
    -i:表示运行容器-t:表示容器启动后会进入其命令行-d:守护式方式创建容器在后台运行--name:容器名称-p 9999: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 容器中
  3. 运行效果
    1、看到返回容器 ID 表示 jenkins 容器创建成功

四。 配置 jenkins 容器

  1. 浏览器访问 http://192.168.1.66:9999,来到 jenkins 解锁页面
    1、http://192.168.1.66 为 Linux 服务器 IP 地址2、9999 为宿主机映射端口

在 Linux 服务器执行命令获取管理员密码
执行命令:docker logs jenkins_save01

复制密码输入到密码框,点下一步,来到如下页面(中间需要等待一段时间,大概 1 分钟左右,耐心等待)

取消默认插件勾选,进入下一步

设置管理员用户名和密码(以后就用这个账号密码登陆你的 jenkins)

配置实例

jenkins 初始化完成看到如下界面

五。 jenkins 安装插件

点上一步骤开始使用 jenkins,来到如下界面

点 Manage Jenkins 来到如下页面

点 Manage Plugins 安装插件
1.Git 插件安装

2、Docker 插件安装


3、HTML Publisher 插件安装


4、安装 Pipeline 插件


5、安装完成后重启 jenkins 容器
docker restart jenkins_save01

六。 创建 jenkins 任务

重新登陆 jenkins,点 New Item

选择创建 Pipeline 项目

配置构建记录保留规则

配置 Git 仓库

添加 Git 凭证

配置 Jenkinsfile 路径

配置完成直接点保存即可

七。 构建有项目执行环境的 python 镜像

  1. 将项目依赖包导出来到 requirements.txt 文件中,txt 文件名称可以随意写
    pip freeze > requirements.txt
  2. 在宿主机(安装 docker 的机子)上新建一个目录(我的目录在/app),将 requirements.txt 文件复制进去
  3. 在 app 目录下创建 Dockerfile 文件(文件名必须是 Dockerfile,没有后缀)
  4. requirement.txt 恩建内容如下
unittestreport==1.3.2
openpyxl==3.0.7
ddt==1.4.2
pytest==6.2.2
selenium==3.141.0
pymysql==1.0.2
faker==8.1.0
jsonpath==0.82
BeautifulReport==0.1.3
rsa==4.7.2
pytest-html==3.1.1
allure-pytest==2.9.43
requests-toolbelt==0.9.1

5.Dockerfile 内容以及解释如下

FROM python:3-alpine  #基于python:3-alpine这个基础镜像镜像构建镜像
WORKDIR /app   #切换工作空间目录
ADD ./requirements.txt /app #将python项目依赖包文件添加到镜像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包
CMD ["python3", "main.py"] #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件

在 app 目录下执行镜像构建命令
docker build -t python3.9:haili .
-t:镜像名称
点(.):点表示 Dockerfile 文件所在的目录,我现在在 app 目录下,点表示当前目录

6.构建成功后会看到一个新的镜像(docker images)

八、创建 build.sh 文件并放到项目根目录下

  echo "运行容器python执行自动化"
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python执行自动化执行成功"

九、写 Jenkinsfile 文件并将放到项目根目录下

  pipeline{
    //配置执行环境
    agent any
    //配置构建过程
	stages{
		stage('build'){
			steps{
			    echo '开始执行shell脚本'
				sh 'sh build.sh'
			}
		}//stage
	}//stages

   //配置构建后操作
	post{
        always{
          echo 'Pipeline 构建成功'
                   		publishHTML(target:[allowMissing: false,
					 alwaysLinkToLastBuild: true,
					 keepAll: true,
					 reportDir: 'reports',
					 reportFiles: '*.html',
					 reportName: 'My Reports',
					 reportTitles: 'The Report'])
        }
    }//post
}//pipeline

十、提交代码到远程仓库

Git add .

Git commit -am'update'

Git push

十一、构建你 jenkins 任务

点构建

查看构建日志

查看测试报告,此时的测试报告会没有样式,因为被 Jenkins 禁用了 CSS 样式,需要我们手动解决

十二、解决测试报告没有样式的问题

把这个代码放进去执行:System.setProperty("

hudson.model.DirectoryBrowserSupport.CSP","")

执行成功返回是空,说明没问题


重新构建就可以看到漂亮的测试报告了


都看到这了,点个赞再走呗!

基于Docker环境下的Jenkins搭建及使用 Jenkins作为目前持续集成中使用较为广泛的工具,在实际生产过程中通过结合众多的插件,从而实现工程的持续构建、持续部署。而传统构建的应用场景大多数运行在虚拟机或者独立的服务器上,在资源开销和管理维护较为复杂。相比于独立的服务器/虚拟机而言,容器不仅部署方便,且占用资源较少。Docker作为目前作为业内最火的一个容器解决方案之一,通过将两者结合,从而实现服务的轻量化,并通过Docker管理Jenkins的资源。 阅读详情

相关推荐

使用JenkinsPipelineDocker集成到编程中

使用JenkinsPipelineDocker集成到编程中随着容器化技术的兴起,Docker已成为开发和部署应用程序的热门选择。Jenkins是一个流行的持续集成和交付工具,它提供了强大的自动化功能。通过将DockerJenkinsPipeline结合起来使用,您可以更轻松地构建、测试和部署应用程序。本文将介绍如何使用JenkinsPipeline来集成Docker,并提供相应的源代码示例。

2301_79331387的博客 220

Jenkins+Docker自动化测试全攻略

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

HUACE0047的博客 519

jenkins使用Docker Pipeline插件

这里是指定我们需要的nodejs的版本 可以根据前端的项目需求自行进行调节镜像的版本,比如前端需要18版本的nodejs的版本 ,只需要在安装jenkins的机器上拉取一个18版本的镜像,然后这image这里做更改即可,当设置。配置完成后配置流水线脚本模版 注意如果没有安装Publish Over SSH 是不会有这个脚本生成的模版的。时:不会创建新的工作区,当前代理的当前工作区将被装入容器,且将在同一节点上启动该容器,所以整体数据将被同步。点击下方生成脚本添加到jenkinsfile上。

weixin_45800790的博客 2445

Jenkins 用户手册 - 通过 Docker 使用 Pipeline

原文地址许多组织使用 Docker 来跨机器统一构建和测试环境,并提供用于部署应用程序的高效机制。Pipeline 从 2.5 版开始对通过 Jenkinsfile 和 Docker 交互提供内置的支持。虽然本节将介绍和使用 Jenkinsfile 相关的 Docker 基础知识,但它不会涵盖 Docker 的基础知识,可在 Docker 入门指南 中了解 Docker 的基本知识。1. 配置执行环

kikajack的博客 1万+

[硬核分享]Docker+jenkinsPipeline 运行 python 自动化

在Linux服务器安装docker创建jenkins容器jenkins中创建pipeline项目根据自动化项目依赖包构建python镜像(构建自动化python环境)运行新的python容器,执行jenkins从仓库中拉下来的自动化项目执行完成之后删除容器。...

Androidyuexia的博客 860

【2023硬核分享Docker+jenkinsPipeline 运行实现 python 自动化

查看测试报告,此时的测试报告会没有样式,因为被 Jenkins 禁用了 CSS 样式,需要我们手动解决。点(.):点表示 Dockerfile 文件所在的目录,我现在在 app 目录下,点表示当前目录。6.构建成功后会看到一个新的镜像(docker images)把这个代码放进去执行:System.setProperty("5.Dockerfile 内容以及解释如下。在 app 目录下执行镜像构建命令。重新构建就可以看到漂亮的测试报告了。执行成功返回是空,说明没问题。

HUA1211的博客 415

【史上最硬核分享Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

查看测试报告,此时的测试报告会没有样式,因为被 Jenkins 禁用了 CSS 样式,需要我们手动解决。点(.):点表示 Dockerfile 文件所在的目录,我现在在 app 目录下,点表示当前目录。在 app 目录下执行镜像构建命令。重新构建就可以看到漂亮的测试报告了。如需要软件测试学习资料,可在公众号。

cs888zsy的博客 1929

Jenkins+docker插件实现持续集成

简介 Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。 LINUX环境Jenkins下载安装 进入Jenkins官网的下载地址 选择稳定版,能避免不少奇奇怪怪的问题 下载好rpm包,传至服务器, 由于Jenkins基于java,所以安装J...

BUG猿的博客 9286

Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到JenkinsPipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline。 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打...

DevOps运维民工 1万+

jenkins+docker容器自动化部署-构建Pipeline流水线项目

1、Pipeline介绍Pipeline,简单来说,就是一套运行Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。2、Pipeline构建项目好处官方文档是这样列举的:(1)代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团...

weixin_40391300的博客 860

Jenkins部署DockerJenkins流水线

Jenkins持续集成到Docker容器中,包括Jenkins的流水线 pipeline全实践

qq_27331467的博客 3040

【DevOps】Jenkins 集成Docker

DockerJenkins 集成可以实现持续集成和持续交付 (CI/CD) 流程的自动化,提高开发效率和软件质量。本文介绍详细的集成步骤和错误处理

TradingAgents-CN专栏 4665

(mac)Docker+jenkins+pipeline运行python接口自动化项目

一、实现思路 1、在mac安装 docker 2、创建 jenkins 容器 3、jenkins 中创建 pipeline 项目 4、根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境) 5、运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目 6、执行完成之后删除容器 二、环境准备 1、在mac上安装docker Mac安装docker 2、docker安装jenkins docker run --name=jenkins_save01 -p

Annlin_的博客 3393

Jenkins打包项目成Docker镜像(Pipeline形式)

拉取代码执行构建清理目标服务器上传文件、构建镜像、运行容器点击流水线语法,可像web-ui一样填写信息,然后让它给你生成代码。

当狐狸拿起了枪 2113

Jenkins和常用插件的安装

Jenkins和常用插件的安装

2201_75362610的博客 1191

Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器

Jenkins 安装 wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install openjdk-8

萧一旬 5025

docker 学习及jenkins安装在docker上 及allure插件的安装

Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。

weixin_44259638的博客 4386
上一篇: 如何介绍自己简历中的项目
下一篇: 软件测试拿到15k,分享我的面经
程序媛月下
博客等级 码龄7年 5263粉丝 · 462原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值