敏捷实践 docker+jenkins+python 接口自动化部署

米兰的铁匠铺 · 2022年07月07日 · 最后由 米兰的铁匠铺 回复于 2024年02月27日 · 4985 次阅读

一、docker 创建 jenkins 容器

1、拉取 jenkins 镜像

docker pull jenkins/jenkins:latest

2、创建 jenkins 挂载目录

mkdir -p /etc/docker/jenkins_mount
chmod 777 /etc/docker/jenkins_mount

3、创建启动 jenkins 容器

docker run -d -u root --name jenkins -p 8080:8080 -v /etc/docker/jenkins_mount/:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker 55860ee0cd73
-d:后台运行镜像
-u root:指定容器用户为 root 用户(后面 jenkins 容器中使用 docker 命令,需要用 root 用户,不然没有权限)
--name:给容器起个别名
-p 8080:8080:将容器的 8080 端口映射到宿主机的 8080 端口
-v /etc/docker/jenkins_mount/:/var/jenkins_home:将 jenkins 的工作目录挂载到宿主机上
-v /etc/localtime:/etc/localtime:使容器和宿主机时区保持一致
-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 容器中,使 jenkins 容器中能使用 docker 命令

二、配置 jenkins

1、jenkin 配置镜像源
系统管理 > 插件管理 > 高级 > 升级站点
重新填写 URL : https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

2、安装 docker 插件

3、安装 allure

4、配置构建记录保存规则

5、配置 git

进 jenkins 容器查看 git 地址


配置在系统管理 - 全局工具配置 - path to git。不配置会拉取 git 失败


配置 git 仓库地址和 github 账号

6、构建前清理工作目录

7、配置 allure

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/下载 allure,并上传到 jenkins_mount 里,进入 jenkins 容器中,解压后,将 allure 地址配置在 jenkins 的系统管理 - 全局工具配置中

三、Dockerfile 配置



FROM:定义 python3.10 镜像源
WORKDIR:指定工作目录为当前文件夹,后续操作都在这个目录下,不然后面的 RUN 和 CMD 都会报错
ADD:将当前文件夹中文件添加到工作目录中
RUN:为镜像源安装依赖包
CMD:docker run 后运行的命令,run.py 是运行文件

四、构建执行 shell



docker system prune -af:删除所有的关闭的容器、无用的数据卷和网络以及未使用的镜像,且强制
docker build -t python:3.10 .:按照 Dockerfile 构建 python3.10 镜像
docker run -w=$WORKSPACE --volumes-from=jenkins python:3.10:启动 python 容器

  • -w:指定 workspace 为 jenkins 的工作目录
  • --volumes-from:将 jenkins 容器中的 workspace 映射到 python 容器中,此时 jenkins 拉下的代码也会被映射进去

五、allure 报告配置

在 job 中配置代码运行完后生成的 allure_temp 文件夹地址。这里因为我代码生成 allure_temp 就是在当前目录下


共收到 2 条回复 时间 点赞

您好,我这执行完成后,会有出现报告,只显示第一结果的情况吗?

2楼 已删除

不太理解,你指的第一结果情况是什么意思

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册