Docker - 使用 Jenkins 镜像创建容器,并搭建 Python + Pytest +Allure 的自动化测试环境
如果你还想从头学起 Docker,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1870863.html
安装 Docker
直接参考我这篇文章哦:https://www.cnblogs.com/poloyy/p/13921450.html
下载 Jenkins 镜像
搜索 jenkins 镜像
docker search jenkins

重点讲下前三个
- 第一个是官方的镜像,但是版本很旧,不推荐
- 第二个镜像虽然不是官方的,但是 jenkins 的版本会跟随 jenkins官方的版本,也就是说会保持拉下来的镜像的 jenkins 版本是最新的,推荐,我也用这个
- 第三个镜像是中文 jenkins 镜像, 但是镜像的系统不是我们所熟悉的 centos、ubuntu、Debian 等,而是 Alpine,安装依赖库的方式也不常见,不推荐
下载 jenkins 镜像
docker pull jenkins/jenkins
这样就会下载最新版本的 jenkins 镜像啦
查看本地镜像
docker images

创建 Jenkins 容器
在主机下创建一个目录
用于挂载目录
mkdir -p /var/jenkins_node
给挂载目录一个最高权限
可读可写可执行
chmod -R 777 /var/jenkins_node
创建与启动 jenkins 容器
- -d:守护模式
- -uroot:使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
- -p:主机 80 端口映射容器的 8080 端口,后面访问 jenkins 直接访问主机 ip 就行了,不需要加 8080 端口
- -v:目录映射
- --name:自定义一个容器名称
- 使用上面推荐的 jenkins/jenkins 镜像
docker run -d -uroot -p 80:8080 --name jenkins1 -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins
查看容器是否运行
docker ps

进入 jenkins 容器 CLI 界面
docker exec -it -uroot jenkins1 bash
这里也可以指定 root 身份进入容器
前置准备
# 获取最新的软件包
apt-get update # 升级已安装的软件包
apt-get upgrade # 提前安装,以便接下来的配置操作
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get install sudo
安装 Python 环境
下载 python
cd /usr/local/src
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -zxvf Python-3.6.8.tgz
mv Python-3.6.8 py3.6
cd py3.6

make 编译安装
在 /usr/local/src/py3.6 安装目录下执行下面的命令
./configure --prefix=/var/jenkins_home/py3.6
make && make install
添加软链接
添加 python3 软链接
ln -s /usr/local/src/py3.6/bin/python3.6 /usr/bin/python3
添加pip3软链接
ln -s /usr/local/src/py3.6/bin/pip3 /usr/bin/pip3

本身有的话忽略就行
验证 python3 环境
敲 python3 和 pip3 有下图的结果就是正常了

安装项目所需的库
首先
需要在 python 项目生成一个 requirement.txt,具体教程可以看
https://www.cnblogs.com/poloyy/p/13953232.html
然后
- 将 requirement.txt 上传到主机
- 从主机复制到容器内 docker cp requirement.txt jenkins1:/usr/local/src

最后安装项目所需的库
pip3 install -r requirements.txt
安装 Allure 环境
官网下载 allure 包
https://github.com/allure-framework/allure2/releases

选个最新版本的去下就行,或者自己挑一个版本
将压缩包传送到容器内
- 先将包上传到主机
- 然后从主机复制到容器内
docker cp allure-commandline-2.13.6.zip jenkins1:/usr/local/src
解压包
unzip allure-commandline-2.13.6.zip
赋予文件夹所有内容最高权限
mv allure-2.13.6 allure
chmod -R 777 allure
配置 allure 和 py 环境变量
cat >> /etc/profile << "EOF"
export PATH=/usr/local/src/allure/bin:$PATH
export PATH=/usr/local/src/py3.6/bin:$PATH
EOF
记得一行一个回车哦,不然就直接复制粘贴
更新环境变量配置文件
source /etc/profile
验证环境变量
allure --version
python3 --version
配置 JDK 环境变量
查看当前的系统已配置的环境变量
export

这里可以看到很多容器本身自带的环境变量
- Jenkins 的版本
- JDK 的安装路径
配置 JDK 环境变量
cat >> /etc/profile << "EOF"
export PATH=$JAVA_HOME/bin:$PATH
EOF
更新环境变量配置文件
source /etc/profile
Docker - 使用 Jenkins 镜像创建容器,并搭建 Python + Pytest +Allure 的自动化测试环境的更多相关文章
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...
- Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件
前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...
- docker定制化镜像的构建及基于该定制的镜像创建容器
1.在项目里创建Dockerfile(注意大小写)文件,执行构建命令:docker build -t tiny-node-1 /root/tiny-node-docker 其中tiny-node ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- Docker笔记——jenkins镜像制作
jenkins官方路径:https://hub.docker.com/_/jenkins/ 最新Dockerfile路径:https://github.com/jenkinsci/docker/blo ...
- Docker——理解好镜像和容器的关系
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 镜像也是 docker 的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态.前面我们介绍了 ...
- Docker Kubernetes 命令行创建容器
Docker Kubernetes 命令行创建容器 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
- Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行
1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生 ...
- docker 使用:镜像和容器
docker 镜像 docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7,需要定制化build的一个安装包 ...
随机推荐
- matlab中fopen 打开文件或获得有关打开文件的信息
参考:https://ww2.mathworks.cn/help/matlab/ref/fopen.html?searchHighlight=fopen&s_tid=doc_srchtitle ...
- tuple的增删改查
dict = {"k1": "v1", "k2": "v2", "k3": "v3&quo ...
- nuget使用经验:复杂依赖关系下的包版本问题
背景 之前同事问到过1个关于nuget包被多层引用后,最终生效的版本的问题.当时通过在项目中重新安装了一次nuget包解决了. 现在来重新复盘一下当时的场景,顺便把这种场景下nuget处理逻辑分享给大 ...
- 这次一定让你记住 TCP 三次握手、四手挥手!
TCP协议全称为:Transmission Control Protocol,是一种面向链接.保证数据传输安全.可靠的数据传输协议.为了确保数据的可靠传输,不仅需要对发出的每个字节进行编号确认,还需要 ...
- 如何免费安装正版Adobe
现在正版的Adobe都非常的贵,如果你想不花钱又想下载正版的Adobe,那么就请花几分钟时间学习以下本篇博客,告诉你如何免费下载正版Adobe! [一定要读完,不要看到一半就以为教您下载的是付费版] ...
- 多测师讲解python_003.2练习题
# 1.分别打印100以内的所有偶数和奇数并存入不同的列表当中# 2.请写一段Python代码实现删除一个list = [1, 3, 6, 9, 1, 8]# 里面的重复元素不能用set# 3.将字符 ...
- win32获取进程树,以及命令行参数
1.先上代码 package main import ( "bytes" "errors" "flag" "fmt" & ...
- 联赛模拟测试17 A. 简单的区间 启发式合并
题目描述 分析 我们要找的是一段区间的和减去该区间的最大值能否被 \(k\) 整除 那么对于一段区间,我们可以先找出区间中的最大值 然后枚举最大值左边的后缀与最大值右边的前缀之和是否能被 \(k\) ...
- 使用 volatile 关键字保证变量可见性和禁止指令重排序
volatile 概述 volatile 是 Java 提供的一种轻量级的同步机制.相比于传统的 synchronize,虽然 volatile 能实现的同步性要差一些,但开销更低,因为它不会引起频繁 ...
- nginx优化: timeout超时配置
一,为什么要做连接超时设置? nginx在保持着与客户端的连接时,要消耗cpu/内存/网络等资源, 如果能在超出一定时间后自动断开连接, 则可以及时释放资源,起到优化性能.提高效率的作用 说明:刘宏缔 ...