文章目录

  • 一、实现思路
  • 二、环境准备
  • 三、Jenkins
  • 3.1 创建Jenkins容器
  • 3.2 配置Jenkins容器
  • image.png
  • 3.3 安装jenkins插件
  • 3.4 创建jenkins任务
  • 3.5 配置Jenkins任务
  • 四、python
  • 4.1 创建python镜像
  • 4.2 编写Dockerfile文件
  • 4.3 完成build.sh
  • 五、构建Jenkins任务


一、实现思路

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

二、环境准备

  1. Linux服务器一台(我的是CentOS7)
  2. 有云服务器的同学直接用云服务器
  3. 没有云服务器的同学参考我的博客自己动手安装虚拟机吧
    VMware 安装 Centos7 步骤图解
  4. 在服务器上正确安装docker
  1. 拉取jenkins镜像

jenkins/jenkins:alpine

2. 拉取python3镜像
     `docker pull python:3-alpine`

三、Jenkins

3.1 创建Jenkins容器
  1. 命令
docker run -dit --name=pyjenkins -p 8089:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine

参数说明

  • -i :以交互式方式运行容器
  • -t : 容器运行后,进入命令行
  • -d :守护式方式创建容器并在后台运行
  • –name : 容器名称
  • -p 8099: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容器中

docker容器运行 docker容器运行python_docker容器运行

3.2 配置Jenkins容器

浏览器访问http://192.168.182.128:8089/,来到jenkins解锁页面

  1. 在linux中获取管理员密码
docker logs jenkins_py1

docker容器运行 docker容器运行python_运维_02

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

docker容器运行 docker容器运行python_jenkins_03

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

docker容器运行 docker容器运行python_docker容器运行_04

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

docker容器运行 docker容器运行python_python_05

  1. 配置实例

docker容器运行 docker容器运行python_jenkins_06

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

docker容器运行 docker容器运行python_jenkins_07

3.3 安装jenkins插件

我们需要安装插件:Git,docker,HTML Publisher 插件

  1. 输入账号密码,进入jenkins

docker容器运行 docker容器运行python_python_08


docker容器运行 docker容器运行python_docker_09

  1. 点Manage Jenkins来到如下页面

docker容器运行 docker容器运行python_运维_10

  1. 点Manage Plugins安装插件

docker容器运行 docker容器运行python_python_11


docker容器运行 docker容器运行python_jenkins_12

  1. 查看安装完成的插件:Git,docker,HTML Publisher 插件

docker容器运行 docker容器运行python_docker容器运行_13

  1. 安装完成后重启jenkins容器

docker restart jenkins_py1

docker容器运行 docker容器运行python_docker_14

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

docker容器运行 docker容器运行python_docker容器运行_15

  1. 创建自由风格的任务

docker容器运行 docker容器运行python_docker容器运行_16

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

docker容器运行 docker容器运行python_docker容器运行_17

  1. Git仓库配置

docker容器运行 docker容器运行python_docker容器运行_18


docker容器运行 docker容器运行python_jenkins_19

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

docker容器运行 docker容器运行python_docker容器运行_20

2. 配置运行脚本

docker容器运行 docker容器运行python_docker_21

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

docker容器运行 docker容器运行python_运维_22


docker容器运行 docker容器运行python_运维_23


docker容器运行 docker容器运行python_jenkins_24

四、python

4.1 创建python镜像
  1. 将项目依赖包导出来到requirements.txt文件中,txt文件名称可以随意写
    pip freeze > requirements.txt
  2. 在宿主机(安装docker的机子)上新建一个目录(我的目录在/app),将requirements.txt文件复制进去
  3. 在app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)
4.2 编写Dockerfile文件
  1. 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", "start.py"] #设置容器执行后自动执行的命令,这里start.py是我们自动化框架的执行入口文件
  1. 在app目录下执行镜像构建命令
docker build -t python3.7:shop_env  .
  • -t:镜像名称
  • 点(.):点表示Dockerfile文件所在的目录,我现在在app目录下,点表示当前目录

docker容器运行 docker容器运行python_python_25

4.3 完成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=pyjenkins python3.7:shop_env
echo "python执行自动化执行成功"
  1. 将build.sh复制到你的项目根目录下
  2. 提交代码到Git仓库
git add .
git commit -am'update'
git push

五、构建Jenkins任务

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

docker容器运行 docker容器运行python_docker容器运行_26

  1. 查看构建过程

docker容器运行 docker容器运行python_python_27

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

docker容器运行 docker容器运行python_jenkins_28

  1. 查看测试报告

docker容器运行 docker容器运行python_docker容器运行_29


docker容器运行 docker容器运行python_docker容器运行_30

注意:
如果报告中没有样式,需:

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

docker容器运行 docker容器运行python_运维_31


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

docker容器运行 docker容器运行python_docker容器运行_32

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