Docker+jenkins 运行 python 自动化
参考:Docker+jenkins 运行 python 自动化 - 测试派 (testingpai.com)
一、实现思路
在Linux服务器安装docker
创建jenkins容器
根据自动化项目依赖包构建python镜像(构建自动化python环境)
运行新的python容器,执行jenkins从仓库中拉下来的自动化项目
执行完成之后删除容器
二、环境准备:
1、在虚拟机上或服务器上安装好docker
2、拉取镜像
拉取jenkins镜像
docker pull jenkins/jenkins:alpine
拉取python3镜像
docker pull python:3-alpine
三. 创建jenkins容器
命令
docker run -dit --name=jenkins1 -p 9999:8080 -u=root -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:alpine
参数说明
-i:表示运行容器
-t:表示容器启动后会进入其命令行
-d:守护式方式创建容器在后台运行
--name:容器名称
-p 9999:8080:端口映射,宿主机端口:jenkins容器端口
-u=root:指定容器用户为root用户
-v /usr/bin/docker:/usr/bin/docker:将宿主机docker客户端映射到jenkins容器中
-v /var/run/docker.sock:/var/run/docker.sock:将docker.sock映射到jenkins容器中
docker.sock文件是docker client与docker daemon通讯的文件
运行效果:
看到返回容器ID表示jenkins容器创建成功
四. 配置jenkins容器
浏览器访问http://192.168.1.66:9999,来到jenkins解锁页面
1、http://192.168.1.66为linux服务器IP地址
2、9999为宿主机映射端口
在Linux服务器执行命令获取管理员密码
1、执行命令:docker logs jenkins1
Jenkins里相关配置一致
五. jenkins安装插件
进入时不安装推荐插件,则进入后在插件管理里安装:
Git、Docker、HTML Publisher、
allure、Groovy、dingtalk
六.新建jenkins任务
在docker-jenkins中执行build是选择shell执行
sh build.sh
执行代码项目中的build.sh脚本(需要先在虚拟机或服务器上构建好build.sh脚本里填写内容中的执行环境)
七.构建有项目执行环境的python镜像
1、将项目依赖包导出来到requirements.txt文件中,txt文件名称可以随意写
pip freeze > requirements.txt
2、在宿主机(安装docker的机子)上新建一个目录(我的目录在/app),将requirements.txt文件复制进去
3、在app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)
4、requirements.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内容以及解释如下
#基于python:3-alpine这个基础镜像镜像构建镜像
FROM python:3-alpine
#切换工作空间目录
WORKDIR /app
#将python项目依赖包文件添加到镜像
ADD ./requirements.txt /app
#安装依赖包
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
#设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件
CMD ["python3", "main.py"]
6、在app目录下执行镜像构建命令
docker build -t python3.10.7:fk .
-t:镜像名称
点(.):点表示Dockerfile文件所在的目录,我现在在app目录下,点表示当前目录
构建成功后会看到一个新的镜像(docker images)
八、build.sh
1、build.sh内容如下
echo "运行容器python执行自动化" #输出日志
#-w=$WORKSPACE:指定workspace
#--volumes-from=jenkins1:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
docker run --rm -w=$WORKSPACE --volumes-from=jenkins1 python3.10.7:fk
echo "python执行自动化执行成功"
2、将build.sh复制到你的项目根目录下
3、提交代码到Git仓库
git add .
git commit -am'update'
git push