如何用Docker+jenkins 运行 python 自动化?

1.在 Linux 服务器安装 docker

2.创建 jenkins 容器

3.根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)

4.运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目

5.执行完成之后删除容器

如何用Docker+jenkins 运行 python 自动化?_第1张图片

环境准备
  1. Linux 服务器一台(我的是 CentOS7)
    1、有云服务器的同学直接用云服务器
    2、没有云服务器的同学参考我的博客自己动手安装虚拟机吧
    VMware 安装 Centos7 步骤图解(http://testingpai.com/article/1629981536584)

  2. 在服务器上正确安装 docker
    1、拉取 jenkins 镜像
    jenkins/jenkins:alpine
    2、拉取 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 为宿主机映射端口

    如何用Docker+jenkins 运行 python 自动化?_第2张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第3张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第4张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第5张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第6张图片

  6. 配置实例

    如何用Docker+jenkins 运行 python 自动化?_第7张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第8张图片

图片

jenkins 安装插件
  1. 点上一步骤开始使用 jenkins,来到如下界面

    如何用Docker+jenkins 运行 python 自动化?_第9张图片

  2. 点 Manage Jenkins 来到如下页面

    如何用Docker+jenkins 运行 python 自动化?_第10张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第11张图片

    2、Docker 插件安装

    如何用Docker+jenkins 运行 python 自动化?_第12张图片

    3、HTML Publisher 插件安装
     

    如何用Docker+jenkins 运行 python 自动化?_第13张图片

    4、安装完成后重启 jenkins 容器

    docker restart jenkins_save01

图片

创建 jenkins 任务
  1. 重新登陆 jenkins,点 New Item

    如何用Docker+jenkins 运行 python 自动化?_第14张图片

  2. 创建自由风格的项目

    如何用Docker+jenkins 运行 python 自动化?_第15张图片

图片

配置 jenkins 任务
  1. 配置构建记录保留规则

    如何用Docker+jenkins 运行 python 自动化?_第16张图片

  2. Git 仓库配置

    如何用Docker+jenkins 运行 python 自动化?_第17张图片

    如何用Docker+jenkins 运行 python 自动化?_第18张图片


     

    如何用Docker+jenkins 运行 python 自动化?_第19张图片


     

    如何用Docker+jenkins 运行 python 自动化?_第20张图片

  3. 配置构建后操作
    1、添加构建后操作模块

    如何用Docker+jenkins 运行 python 自动化?_第21张图片

     2、配置运行脚本

如何用Docker+jenkins 运行 python 自动化?_第22张图片


3、配置 jenkins 中展示的测试报告路径

如何用Docker+jenkins 运行 python 自动化?_第23张图片


 

如何用Docker+jenkins 运行 python 自动化?_第24张图片



 

如何用Docker+jenkins 运行 python 自动化?_第25张图片

  4、保存项目所有配置

如何用Docker+jenkins 运行 python 自动化?_第26张图片

六、构建有项目执行环境的 python 镜像

  1. 将项目依赖包导出来到 requirements.txt 文件中,txt 文件名称可以随意写
    pip freeze > requirements.txt

  2. 在宿主机(安装 docker 的机子)上新建一个目录(我的目录在/app),将 requirements.txt 文件复制进去

  3. 在 app 目录下创建 Dockerfile 文件(文件名必须是 Dockerfile,没有后缀)

  4. requirements.txt 文件内容如下

    unittestreport==1.3.2openpyxl==3.0.7ddt==1.4.2pytest==6.2.2selenium==3.141.0pymysql==1.0.2faker==8.1.0jsonpath==0.82BeautifulReport==0.1.3rsa==4.7.2pytest-html==3.1.1allure-pytest==2.9.43requests-toolbelt==0.9.1
  5. Dockerfile 内容以及解释如下

    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是我们自动化框架的执行入口文件

     5、在 app 目录下执行镜像构建命令

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

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

如何用Docker+jenkins 运行 python 自动化?_第27张图片

图片

完成 build.sh
  1. build.sh 内容如下

    echo "运行容器python执行自动化" #输出日志#-w=$WORKSPACE:指定workspace#--volumes-from=jenkins_save01:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:hailiecho "python执行自动化执行成功"
  2. 将 build.sh 复制到你的项目根目录下

  3. 提交代码到 Git 仓库
    Git add .
    Git commit -am'update'
    Git push

图片

去构建 jenkins 任务
  1. 回到 jenkins 首页,找到项目点构建

    如何用Docker+jenkins 运行 python 自动化?_第28张图片

  2. 查看构建过程

    如何用Docker+jenkins 运行 python 自动化?_第29张图片

  3. 点构建记录

    如何用Docker+jenkins 运行 python 自动化?_第30张图片

  4. 查看构建过程(python 自动化项目的输出日志也在这里可以看到)

    如何用Docker+jenkins 运行 python 自动化?_第31张图片

  5. 构建过程如下图

    如何用Docker+jenkins 运行 python 自动化?_第32张图片

  6. 查看测试报告

    如何用Docker+jenkins 运行 python 自动化?_第33张图片

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

    如何用Docker+jenkins 运行 python 自动化?_第34张图片

图片

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

如何用Docker+jenkins 运行 python 自动化?_第35张图片

如何用Docker+jenkins 运行 python 自动化?_第36张图片

把这个代码放进去执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

如何用Docker+jenkins 运行 python 自动化?_第37张图片

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

如何用Docker+jenkins 运行 python 自动化?_第38张图片

图片

重新构建可以看到有样式的测试报告

如何用Docker+jenkins 运行 python 自动化?_第39张图片

如何用Docker+jenkins 运行 python 自动化?_第40张图片

你可能感兴趣的:(docker部署python)