准备工作:
## 1.编写Dockerfile 定制版的镜像,以下注释需去掉
尽量选择国内源,并更新下pip工具
RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host https://pypi.tuna.tsinghua.edu.cn
FROM python:3.9-slim
WORKDIR /api_testing # 容器当中的工作路径
COPY . . # 把本地文件复制到容器中
RUN pip3 install -r requirements.txt # 安装依赖
CMD [ "python3", "run.py"] # 执行用例
## 2.编写Jenkinsfile,方便Jenkins执行命令行的配置
保存了项目需要执行的 jenkins 命令
dockerfile , 构建了一个 python 的容器
构建操作(steps): python run.py
构建后的操作(post): 生成测试报告。
以下注释需去掉
pipeline { agent { dockerfile { additionalBuildArgs "-t api_testing:${currentBuild.number}"} } # 客户端 stages { # 执行的每个阶段 stage('test') { # test阶段,自定义的名称 steps { # 构建操作 sh 'python run.py' } post { # 构建后操作 always { publishHTML (target : [allowMissing: false, alwaysLinkToLastBuild: true, keepAll: true, reportDir: 'reports', reportFiles: '*.html', reportName: 'My Reports', reportTitles: 'The Report']) } } } } }
这两文件放在与run.py同层级目录下,
Jenkins安装并构建:
1.安装 jenkins:
```
docker run -u root --rm -d --name blueocean -p 8084:8080 -p 50004:50000 -v $(which docker):/usr/bin/docker -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
```
docker run -u root --rm -d --name blueocean
-p 8084:8080 -p 50004:50000 开放端口添加映射
-v $(which docker):/usr/bin/docker 执行docker命令的目录,使用which docker查找本地docker路径,将容器中的/usr/bin/docker路径映射到宿主机的docker路径
-v /home/jenkins:/var/jenkins_home 存储数据的目录 可以使用$HOME 定位本地的home目录,将容器中的/var/jenkins_home映射到本地的home/username/jenkins
-v /var/run/docker.sock:/var/run/docker.sock 配置docker服务
jenkinsci/blueocean
2.配置Jenkins
## pipeline
命令版的 jenkins 流程。
新建流水线项目pipline
-安装插件
-安装docker插件:Docker plugin 和Docker Pipeline
-配置Pipline源码地址
在Jenkins上构建该项目相当于:进入项目目录下执行docker build . 创建镜像,使用docker container run image_id 运行容器