使用Docker+jenkins+python3环境搭建的方法
使用Docker+jenkins+python3环境搭建的方法
这篇文章主要介绍了使用Docker+jenkins+python3环境搭建的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇使用Docker+jenkins+python3环境搭建的方法文章都会有所收获,下面我们一起来看看吧。
前言:
自动化写好后需要在服务器上每日定时运行遇到,这样的一个问题,Jenkins容器是在docker中安装的 ,然后从git上拉取代码 发现代码在jenkins容器的目录当中,运行的时候提示没有安装python环境还第三方库。
解决方法有3种:
第一种:启动jenkins容器时 将容器的目录挂载到宿主机目录上去执行(方法不能实现)Pass
第二种:在jenkins上创建本地节点,将代码拉取到本地 然后去运行本地项目(在本机上使用比较方便,但是局限性比较小)
第三种:重新封装jenkins镜像,在jenkins镜像中安装python3的环境 在容器中执行项目(步骤麻烦,但后续永久使用)
第一种方法和第二种方法前提都需要在服务器中安装docker和jenkins镜像
一、安装docker
二、安装jenkisn镜像
1.查找docker上的镜像dockersearchjenkins2.下载自己所需要的镜像dockerpulljenkinsci/blueocean3.查看是否下载成功dockerimages4.启动下载的镜像dockerrun-d-p10240:8080-p10241:50000-v/jenkins_autotest/jenkins_home:/var/jenkins_home-v/etc/localtime:/etc/localtime-eJAVA_OPTS=-Duser.timezone=Asia/Shanghai--namejenkint_testjenkinsci/blueocean#说明:dockerrun运行 -d:后台运行容器 -p:指定容器的端口映射-p10240:8080表示将容器的8080端口映射到宿主机的10240端口上,映射多个端口使用-p8082:8080-p8083:8081-v:挂载宿主机目录和docker容器中的目录/Users/songpeilun/jenkins_home本地宿主机绝对目录;/var/jenkins_home容器目录(将容器目录挂载到本地)-v:/etc/localtime:/etc/localtime本地时间和容器时间同步-eJAVA_OPTS=-Duser.timezone=Asia/Shanghai设置容器时间为上海时间(不然容器时间和本地时间相差8小时)--namejenkint_test设置容器的名称jenkinsci/blueocean选择镜像名称启动容器(默认镜像后面会加latest如果拉取自己创建的镜像后面要加自己的版本号jenkinsci/blueocean:版本号TAG)⚠️容器目录挂载本地目录时一定要给本地文件夹赋予权限chmod777jenkins_home
输入docker images查看jenkins镜像是否安装成功
dockerimages
查看容器是否运行
dockerps
可以看出docker中已经有运行的容器jenkins
这样就说明 已经安装好jenkins 现在就可以启动jenkins了
三、启动jenkins
浏览器输入 服务器的ip+端口号 http://47.99.98.250:10240/ 如果无法访问请关闭系统防火墙
查看密码的方式有2种,第一种是在服务器的容器中查看,第二种是在映射本地查看(前提是你映射了本地目录)
好了,到这里就已经安装好jenkins了
容器中查看密码:cat/var/jenkins_home/secrets/initialAdminPassword映射本地目录:cat/Users/songpeilun/jenkins_home/secrets/initialAdminPassword#/Users/songpeilun/jenkins_home本地映射目录地址
三、方法2:新建本地节点
说一下方法2的具体逻辑,主要是新建jenkins的本地节点 利用新的节点将git上的代码拉取到本地(宿主机)上去执行代码
该方法主要适用于 本地已经有一套python3的一套环境,可以直接运行自动化 利用本地持续集成实现每日自动化报告(缺点:因为利用的是本地节点 利用宿主机地址当作ip 所以每次都需要开启电脑和jenkins地址 且外网不能访问 局限性小)
第一步:在jenkins当中安装SSH Agent插件
安装 ssh Agent插件 系统设置―插件管理―可选插件 然后输入ssh agent 搜索
第二步新增节点
系统设置―节点管理―新建节点(节点名称不能重复)
说明:
节点名称:名称尽量用英文和字符不要用汉字(创建项目的时候选择节点会有警告!)
节点描述:可填写可不填写
执行器数量:节点同时运行的数量
远程工作目录:本机的工作目录(/Users/songpeilun/jenkins)这需要有root权限的用户对此文件所有权限
标签:可填写可不填写
用法:尽可能对使用这个节点
启动方式:Launch agents via SSH
主机:本机的网络ip地址(网络-网络设置-IP)
Credentials:选择已添加的本机账号密码
Host Key Verification Strategy:Non verifying Veriflication Strategy
可用性:尽量保持代理在线
节点属性--git:git的安装路径
然后启动节点 下面就表示启动成功,然后查看本地宿主机 目录文件夹夹是否有节点的文件
三、方法3:容器中安装python3环境
说一下方法3的具体逻辑,主要是在容器中运行代码,git将代码默认拉取到容器当中 不需要映射直接在容器中执行代码(好处:不占用服务器的资源大小,随时启动;不需要本地启动服务 直接利用服务器地址就行 坏处:安装麻烦一点? )
第一步:需要进入jenkins容器当中
dockerexec-ituroot容器id/bin/sh
下面有2种方法安装 python3
1.weget 安装(不推荐,基本和现安装的方法差不多,先要安装一些依赖包,如 gcc 等)
2.apk add 安装(此版本是alpine :apk add,能够快速安装完成)
最后注意系统版本问题:
如果是 centos 那即是 yum ; 如果是 ubuntu 那即是 apt-get ;如果是 alpine 那即是 apk
第二步:apk进行安装python3
cd/etc/apk/echo"https://mirrors.ustc.edu.cn/alpine/v3.6/main/">repositoriesecho"https://mirrors.ustc.edu.cn/alpine/v3.6/community/">>repositories
更新apk源 这样下载的比较快
apkupdate
第三步:使用apk add 安装python3环境
apkaddpython3
第四步:更新pip3
pip3install--upgradepip验证python环境python-VPip3-V
上面安装成功后 就可以安装第三方库的插件了,已经完成一半了
插件安装 根据自己项目需要安装 下面就以我的项目为列
第五步:安装python 三方库
首先创建requirements.txt 文件
pip freeze > requirements.txt
pip install -r requirements.txt
然后使用 vi requirements.txt 打开文件进行编辑
base64-test0926==1.0.0PyMySQL==1.0.2pytest==6.2.3python-jenkins==1.7.0PyYAML==5.4.1redis==3.5.3requests==2.25.1SQLAlchemy==1.4.10urllib3==1.26.4wheel==0.36.2allure-pytest==2.8.40allure-python-commons==2.8.40最后2个需要将Allure报告配置完成后在进行安装,不然会报错
⚠️ 如果安装出错 不要着急 慢慢找出原因 我之前出错后 找了半天原因 是因为缺少greenlet 插件 (后面在为大家 提供方法)
如果没有问题 到这里就已经安装成功了,可以将自己的代码cp 到容器当中 测试一下。没有问题后就可以打包镜像了
本地文件拷贝到容器xx目录当中
dockercp/Users/songpeilun/python_data/allure-2.13.0.zipjenkint_test:/xx目录
我这里使用了Allure报告 所以要安装
第六步:安装allure报告
allure是一个解压包,这里为大家提供一个,下载后拷贝到容器当中 解压
链接: https://pan.baidu.com/s/1JbBXOfA0j6saZh7H8RMipw 密码: qfnv
#容器中解压文件unzipallure-2.13.0.zip#配置环境变量vi/etc/profilePATH后面添加:$PATH:/allure-2.13.0/bin(allure的全路径)source/etc/profile保存生效
第七步:验证allure
allure--version
关于“使用Docker+jenkins+python3环境搭建的方法”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“使用Docker+jenkins+python3环境搭建的方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
python(中无效的十进制怎么解决 python怎么转换进制)
python怎么转换进制?Python执行二进制转换:1.十进制到二进制(bin)首先,让让我们看看如何将十进制转换成二进制。我...
-
python怎么清除完全相同的行(python splte如何分隔有多个相同符号的str)
pythonsplte如何分隔有多个相同符号的str?str你的string内容str_(相同的符号)执行完了以后再在相同符号的...
-
python(编程控制电脑关机 如何控制电脑关机)
如何控制电脑关机?可以在电脑的运行窗口中输入输入公式,给电脑可以设置自动关机。1.按开快捷键winr然后打开运行窗口。2.在运行窗...
-
python中的特殊标识符(python 中 标识符中可以有逗号吗)
python中标识符中可以有逗号吗?在python语言中合法的标识符是字母、数字以及_,所以我合法的标识符中肯定不能有逗号if...
-
jenkins(docker 最佳实践 小团队devops如何落地)
小团队devops如何落地?我司之前小团队java技术站CI/CD路线,基于阿里云自建整体原则:先测什么后生产出来,先边缘后核心具...
-
python(excel 提取数据写入新表 python导入excel数据找不到工作簿)
python导入excel数据找不到工作簿?我可以导入数据后找不到工作,不是因为他的工作没有被转移。什么软件可提取并合并Exce...
-
python中字典定义的四种方法(python global关键字的用法详解)
pythonglobal关键字的用法详解?global标志实际上是目的是提示python讲解器,说被其修饰的变量是全局变量。这样...
-
python(array用法 python如何对两个数组做差处理)
python如何对两个数组做差处理?Python中的列表中的元素肯定不能真接相加,减。t最佳的位置的是将列表装换成Python中的...
-
python多行注释符号怎么表示
python多行注释符号怎么表示这篇文章主要介绍“python多行...
-
python支持的操作系统是什么
python支持的操作系统是什么这篇文章主要介绍“python支持...