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的一个安装包 ...
随机推荐
- VS2013中带命令行参数的调试方法---C++
今天先记录一下(也是传说中大神喜欢装逼的comment line)c++中向主函数int main(int argc,char** argv )传递4中方法,欢迎添加新方法, 然后可以参考别人写的很好 ...
- 《C++primerplus》第8章练习题
1.(简单用一下引用变量,没有采用书中的题目)定义一个替身结构体,存储名字(char[])和力量值(int).使用结构体引用作为形参写两个函数,一个不加const,使得能对定义的结构体做修改,另一个加 ...
- 【题解】CF1207E XOR Guessing
Link 这是一道交互题. \(\text{Solution:}\) 观察到猜的数范围只有\(2^{14}.\) 我第一次想到的方法是,我们可以确定系统选择的两个数的异或和,用这个异或和去穷举所有目标 ...
- ASP。netcore,Angular2 CRUD动画使用模板包,WEB API和EF 1.0.1
下载Angular2ASPCORE.zip - 1 MB 介绍 在本文中,让我们看看如何创建一个ASP.NET Core CRUD web应用程序与Angular2动画使用模板包,web API和EF ...
- C#开启线程的四种方式
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! 1.异步委托开启线程 public class Pro ...
- JVM 第五篇:命令行 JVM 故障处理工具
本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 虽然我们前面介绍了各种图形化 JVM 故障处理工具,但是很多情况下,我们在处理问题的时候并没有图形化的操作环境可以使用,这时候,就需 ...
- 使用appium后安卓手机无法调出键盘解决方法
问题:用appium进行真机调试后,使用手机的app进行输入时无法调出键盘. 原因:appium调试时,将手机输入法设置成了Unicode IME 解决方法: 方法一,手机设置里修改输入法: 不同的手 ...
- C语言的污垢,一个能污染内存的神秘操作!神级坑位再现~
本文目的是为了更好的理解指针和内存管理 背景 我们定义一个变量A,修改另外一个一个变量B,导致A的值被修改,我们称它为内存污染. 案例 如下程序,正常的预期输出应该是:97 98 256 ,但正确的结 ...
- 【转】Python3 正则表达式特殊符号及用法(详细列表)
转载自鱼c论坛:https://fishc.com.cn/forum.php?mod=viewthread&tid=57691&extra=page%3D1%26filter%3Dty ...
- Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs
这篇论文试图将GAT应用于KG任务中,但是问题是知识图谱中实体与实体之间关系并不相同,因此结构信息不再是简单的节点与节点之间的相邻关系.这里进行了一些小的trick进行改进,即在将实体特征拼接在一起的 ...