服务器搭建测试环境:
Linux 安装python
设置环境变量
Pip install -r rqm.txt
Git/svn
Jenkins
传统的安装环境的方式:
1,没有固定的脚本可以执行
2,系统发行版(centos,Ubuntu)不一样
3,系统版本不一致
4,python版本
5,没有办法移植
Docker:
不管想装什么软件,什么环境,只需要下载这个软件的镜像,通过docker运行
Docker镜像和容器:
文件-->镜像-->容器
镜像(image)相当于安装包
容器(container)相当于在运行的软件/进程
通过镜像形成容器
服务器安装docker
卸载老版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
-添加包地址
sudo yum install -y yum-utils$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
-安装
sudo yum install docker-ce docker-ce-cli containerd.io
-重启
sudo systemctl start docker
安装过程可能又冲突,移除这两个
sudo yum remove podman
Sudo yum remove buildah
docker指令
镜像指令:
-查看指令
指令输入:docker image,可以看到相关的指令操作
通过 docker iamge ls 查看目前所有的镜像
-下载镜像
指令输入:docker image pull 镜像名称
访问dockerhub仓库,搜索要安装的镜像
-移除镜像
指令输入:docker image rm 镜像id(只写部分)
容器指令:运行容器
-基础使用
指令输入: docker container run 镜像名/id
-添加参数(每个容器的运行需要的参数不同)
指令输入 docker container run -p 8000:80 nginx
-p:开放端口,表示开启容器的80端口和22端口,分别映射到宿主机(服务器)的8000和5000端口,如nginx必须开放端口才能使用
比如想要在客户端访问服务器上的nginx,那么先要访问服务器,连接服务器的地址(端口为8000),然后服务器映射容器的端口(80),之后我们就能在客户端访问到服务器上的容器
-d 后台运行
指令输入:docker container run -p 8000:80 -d nginx
日志就变成后台运行
-v 添加volume数据卷
容器和服务器(宿主机)是互相不能进行交互,如果想要进行交互 就要开启数据通道(volume)
表示把容器的目录下的文件,传输给宿主机的目录,这样的话,如果删除了这个镜像,也不会导致容器里的文件丢失,因为都保存到了宿主机上,也方便我们在宿主机上查看文件
-查看日志
命令行输入: docker container logs 容器id
-查看正在运行的容器(进程)
命令行输入: docker ps
-停止容器运行
命令行输入: docker stop 容器id
docker搭建jenkins
1,运行镜像
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
2,初始化jenkins
输入docker logs jenkins容器id,找到密码
Dockerfile 定制版镜像
定制一个python镜像,因为要在jenkins上运行python,但是服务器上没有python 也没有依赖的第三方包,所以通过定制,让所有的步骤写入镜像里
-表示从哪个镜像开始构建
FROM python:3.9-slim
-容器的工作目录,相当于运行cd /api_testing,如果没有目录会自动创建
WORKDIR /api_testing
-把本地文件(dockerfile所在目录下的所有文件)复制到容器的工作目录下
COPY . .
-安装插件
RUN pip3 install -r requirements.txt
-运行指令,表示用python3 运行run.py
CMD [ "python3", "run.py"]
在项目根目录下创建Dockerfile,里面不能有注释
模拟定制镜像
比如已有文件
在dockerfile所在目录,输入命令 docker build .
系统会自动查找该目录下的dockerfile
创建镜像完成(未命名)
jenkins运行docker容器
服务器上没有python或者其他python所需的库,所以不能直接在jenkins上运行代码,需要在jenkins中通过dockerfile创建一个python的容器,在容器中运行测试代码
安装docker插件
让jenkins能够调用系统中(服务器)的docker指令根据dockerfile去生成定制的镜像
安装docker和dockerpipeline
Pipeline:命令版的jenkins流程
在项目根目录下添加Jenkinsfile,把ui转化成指令
设置
Pileline选择scm
填入远程仓库地址
开始构建
连接远程仓库,读取jenkinsfile
拉取远程仓库的代码
调用系统中的docker创建dockerfile中定制的镜像
把代码复制到容器的工作目录下
运行容器,容器里执行自动化测试代码
每次运行完成.jenkins会自动用docker指令删除镜像