51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 669|回复: 0
打印 上一主题 下一主题

[原创] 如何在Docker环境下搭建及使用Jenkins

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-10 16:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Jenkins作为目前持续集成中使用较为广泛的工具,在实际生产过程中通过结合众多的插件,从而实现工程的持续构建、持续部署。
  而传统构建的应用场景大多数运行在虚拟机或者独立的服务器上,在资源开销和管理维护较为复杂。相比于独立的服务器/虚拟机而言,容器不仅部署方便,且占用资源较少。

  Docker作为目前作为业内最火的一个容器解决方案之一,通过将两者结合,从而实现服务的轻量化,并通过Docker管理Jenkins的资源。下面通过Docker部署Jenkins、Jenkins配置以及实例构建,讲述

Jenkins的基本使用。

  Docker下安装Jenkins

  注:因为Jenkins容器里的用户是Jenkins,而主机用户不是Jenkins,就算是root也一样会报错:/var/jenkins_home/copy_reference_file.log: Permission denied,这个时候就需要在主机上面给主机地

址赋予访问Jenkins容器的权限,Jenkins内部用的是uid 1000的user。

  -privileged=true让容器具有root权限,便于进入容器

  -p 9090:8080指定主机9090端口映射到Jenkins容器的8080端口(Jenkins的web访问端口)

  -v /home/jenkins:/var/jenkins_home容器/var/jenkins_home路径挂载到宿主机/home/jenkins路径

  启动Jenkins

  浏览器输入http://ip:9090访问Jenkins首页:




密码地址

  容器内:/var/jenkins_home/secrets/initialAdminPassword


  宿主机:/home/jenkins/secrets/initialAdminPassword


  进入插件下载页面,下载插件:




Jenkins插件下载

  再进入插件下载管理页面http://ip:9090/pluginManager/advanced,使用https://cdn.jsdelivr.net/gh/jenk ... /update-center.json替换原来的json。


  配置Jenkins




修改Jenkins时间

  查看宿主机系统时间:

date -R


  进入Jenkins容器查看时间:


docker exec -it -u root 容器id /bin/bash # 进入容器


date -R # 查看容器内时间


echo Asia/Shanghai >/etc/timezone # 容器内创建Asia时区文件


docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime  # 退出容器并复制宿主机中localtime到容器内




  配置Python3环境


  Jenkins容器内并没有Python3环境,需要自己安装:

docker exec -it -u root 容器id /bin/bash #进入容器


cat /etc/issue #查看当前操作系统




  注:Debian系统,这里使用apt-get代替yum。


apt-get update #更新apt-get


#apt-get安装依赖包


apt-get -y install gcc automake autoconf libtool make


apt-get -y install make*


apt-get -y install zlib*


apt-get -y install openssl libssl-dev


apt-get install sudo



# 安装Python3


cd /var/jenkins_home


mkdir python3


cd python3


wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz # 获取python-3.6.8.tgz包


tar -xvf Pyhthon-3.6.8.tgz #解压


cd Python-3.6.8 # 切换到Python-3.6.8目录

#执行make和make install安装


./configure --prefix=/var/jenkins_home/python3 --with-ssl


make


make install

# 添加软连接


# 添加Python3软连接


ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3


# 添加pip3软连接


ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3

# 安装所需Python


pip3 instal requests pytest-html pytest


  配置HTML报告/Allure报告


HTML报告配置

  HTML Publisher插件下载,系统设置-->插件管理-可选插件,搜索:HTML Publisher。



Allure报告配置


下载allure:https://github.com/allure-framew ... 0/allure-2.14.0.tgz。

docker cp /home/allure-2.14.0.tgz 容器id:/var/jenkins_home # 拷贝到容器内

cd /var/jenkins_home


mkdir allure


cd /var/jenkins_home/allure


tar -xvf allure-2.14.0.tgz # 解压allure


  安装Allure Jenkins Plugin插件,系统管理插件管理-可选插件,搜索Allure:





安装完成后,全局工具配置>Allure Commandline安装allure命令行工具,选择容器内路径。

  简单使用-实例构建


  构建job。





参数化构建

  系统设置-->插件管理-可选插件,搜索Git Parameter.





安装完成后,job中勾选参数化构建过程。

  注:这里是生成allure报告的配置,如果是要生成HTML报告则使用如下命令:


pytest test_demo.py --html=report/result.html --self-contained-html

  构建后操作




path地方写Aallure报告的地址,与执行shell地方生成的报告地址保持一致即可。



注:上述是生成allure报告配置,生成HTML配置如下:





注:HTML添加css样式。

  安装Startup Trigger和Groovy插件


  在Job配置页面构建触发器勾选Build when job nodes start





增加构建步骤Execute system Groovy script




配置成功

  配置成功后,参数化构建:



 

控制台输出




 Allure报告查看





HTML报告查看

















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 06:47 , Processed in 0.064855 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表