dockerfile定制jenkins+python+pytest+allure镜像步骤

一、 创建dockerfile文件

# 创建目录
mkdir jenkinsci_dockerfile

# 进入目录
cd jenkinsci_dockerfile

# 创建dockerfile文件
touch dockerfile

二、 将依赖的文件或目录和安装包放在当前目录

# 将容器里python3编译文件拷贝到宿主机dockerfile同级目录下
docker cp 容器名:python3编译文件 ./

# 在当前目录下创建allure数据文件目录,用于存放allure文件夹
mkdir allure_data

# 将容器里allure文件拷贝到宿主机allure_data目录下(这里有坑,见第七点,这里的操作已修正)
docker cp allure:./allure_data目录下

# 创建环境配置文件
touch env_path

最终目录结构:

三、 编写dockerfile文件

vim dockerfile

# 基础镜像
FROM jenkins/jenkins:lts

# 拷贝python3安装编译包到镜像,编译步骤见前面搭建容器的文章
COPY ./python3 /var/jenkins_home/

# 切换到root用户,保证接下来的操作有权限
USER root

# 添加软连接
RUN ln -s /var/jenkins_home/python3/bin/python3.7 /usr/bin/python3\
&&ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3\
&&ln -s /var/jenkins_home/python3/bin/pytest /usr/bin/pytest

# 复制allure到镜像
COPY ./allure_data /home/data/

# 配置allure环境变量
COPY ./env_path /var/jenkins_home
RUN  cat /var/jenkins_home/env_path  >> /root/.bashrc && /bin/bash -c "source /root/.bashrc"

四、 构建镜像

docker build -f dockerfile -t jenkinsci:1 .

最后的点不要忘记,这里的上下文路径是当前目录

五、 创建运行容器,验证镜像功能

# 创建运行容器
docker run -id --name=jenkinsci1 -p 8080:8080 -v /var/jenkins_node:/var/jenkins_home jenkinsci:1

# 进入容器
docker exec -it -uroot jenkinsci1 /bin/bash

验证jenkins功能:

在浏览器访问ip地址:8080端口,如果能进入jenkins页面,说明没问题

验证python3环境:

验证pytest:

验证allure:

六、上传镜像到dockerhub

以上验证无误说明定制镜像没问题,可以上传到远程镜像仓库

1、首先注册dockerhub账号,地址:dockerhub官网地址

2、本地登录远程仓库:docker login ,根据提示输入用户名密码

3、为本地镜像打标签:docker tag 本地镜像名:tag dockerhub用户名/远程镜像名:tag

可以看到本地多一个拷贝出来的镜像,名字就是远程镜像名,将这个镜像push到远程镜像仓库

4、本地docker push dockerhub用户名/远程镜像名:tag

push完成可以在dockerhub上看到镜像名

七、出现的问题和解决过程

1、问题:

根据定制的镜像创建运行容器,进入容器验证环境时,发现python3、pytest都验证通过,但是allure --version提示找不到allure

2、解决过程:

1、查找allure环境变量是否通过dockerfile命令生效,cat /root/.bashrc,发现有allure环境变量

2、看allure文件夹是否通过COPY命令拷贝到环境变量对应的路径下。发现/home/data目录下没有allure文件夹,只有四个文件夹(后面发现是allure目录下的四个文件夹)

3、然后去查看COPY命令,发现写法似乎没什么问题,但是没拷贝成功,问题肯定是出在COPY命令上,于是去搜索COPY命令具体用法,找到答案如果源路径是目录,那么会将源路径目录下的内容拷贝到镜像里,所以需要修改jenkinsci_dockerfile下allure的位置,创建一个目录allure_data,将allure放在子目录allure_data下,dockerfile COPY alure_data,拷贝到镜像的是allure,经过验证,allure --version正常

3、总结:

COPY命令:
    格式:COPY 宿主机文件或目录 镜像目录/    
    如果源路径是个文件,则把文件拷贝到镜像目录下
    如果源路径是个目录,则把目录下的内容拷贝到镜像目录下
    注意:目录路径最好在结尾加上/,代表是目录

dockerfile依赖文件或目录存放位置:
    一般放在dockerfile文件同级目录下即可
    如果要做COPY命令,依赖的文件放在同级目录下,依赖的文件夹放在同级目录
    的子目录下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建项目自动化框架需要一定的技术基础,以下是从0到1使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的步骤: 1. 安装 Docker 首先需要在本机安装 Docker,可以到 Docker 官网下载并安装。 2. 创建 Docker 镜像 使用 Dockerfile 创建 Docker 镜像,配置好 Python 3.7 环境以及所需的依赖包,例如 pytest, allure-pytest 等。 3. 创建 Jenkins 服务器 使用 Docker 创建 Jenkins 服务器,可以通过以下命令启动 Jenkins 服务器: ``` docker run -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 其中-p参数是指定端口映射,-v参数是挂载目录到本地磁盘。 4. 安装必要的 Jenkins 插件 在 Jenkins 中安装必要的插件,如 Git 插件、Allure 插件等。 5. 创建 Jenkins 任务 创建一个 Jenkins 任务,配置源码管理为 Git,指定 Git 仓库地址和分支名称。在构建步骤中添加执行命令的步骤,例如: ``` docker run -it --rm -v $WORKSPACE:/test -w /test <docker_image_name> pytest --alluredir ./report/allure-report ``` 其中,$WORKSPACE 是 Jenkins 任务的工作目录,<docker_image_name> 是之前创建的 Docker 镜像名称,pytest 命令是执行测试用例的命令。 6. 配置 Allure 报告 在 Jenkins 中配置 Allure 报告,安装 Allure 插件,配置 Allure 命令路径,并指定报告存放路径。 7. 执行 Jenkins 任务 执行 Jenkins 任务,Jenkins 将会拉取 Git 代码,构建 Docker 镜像并启动容器运行测试用例,最后生成 Allure 报告。 以上就是使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的步骤,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值