淘先锋技术网

首页 1 2 3 4 5 6 7

CI/CD学习笔记:Docker 安装部署持续集成环境Jenkins+pytest+allure

安装Docker

参考博客

下载Jenkins镜像

docker pull jenkins:jenkins:lts

启动Jenkins容器

docker run -d -p 9999:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true jenkins/jenkins:lts

参数说明:

docker run #运行docker镜像
-d #后台运行-d
-p 9999:8080 #端口映射,将容器内部端口8080映射到外部端口9999,即可使用浏览器http://ip:9999访问
-p 50000:50000 #端口映射,可以百度下50000端口的用途
-v jenkins:/var/jenkins_home #路径映射,将提前创建好的docker卷jenkins映射给容器内部的jenkins_home用作数据持久化
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai #自定义参数-e,此处参数代表设定时区为上海时区
-e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true #自定义参数-e,此处用于解决Jenkins插件安装问题
jenkins/jenkins:lts #要运行的镜像名称及版本

进入Jenkins容器

1.查看Jenkins容器的ID

docker ps -a

此处可以看到,本次运行的容器ID为:31e6bab697ac

2.执行命令以root用户身份进入容器

容器中安装Python环境

1.查看操作系统信息

cat /etc/issue

由此可以看到操作系统时Debian的,因此安装包的工具不是yum,可以用apt-get

切换到/opt路径(本案例软件安装在opt路径)

cd /opt

2.安装vim等工具

apt-get -y install vim

修改配置文件vim /etc/apt/source.list为国内镜像源(以下为华为镜像站)

deb https://mirrors.huaweicloud.com/debian/ stretch main contrib non-free
deb-src https://mirrors.huaweicloud.com/debian/ stretch main contrib non-free
deb https://mirrors.huaweicloud.com/debian/ stretch-updates main contrib non-free
deb-src https://mirrors.huaweicloud.com/debian/ stretch-updates main contrib non-free
deb https://mirrors.huaweicloud.com/debian/ stretch-backports main contrib non-free
deb-src https://mirrors.huaweicloud.com/debian/ stretch-backports main contrib non-free 
apt-get -y install wget net-tool* procps

3.获取Python安装包

wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz

4.解压Python安装包

tar -xf Python-3.8.6.tgz

5.安装gcc相关依赖包

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 -y install sudo

6.进入到解压目录进行编译

mkdir /opt/python3
cd Python-3.8.6
./configure --prefix=/opt/python3
make && make install

7.添加软链接

ln -fs /opt/python3/bin/python3.8 /usr/bin/python3
ln -fs /opt/python3/bin/pip3 /usr/bin/pip3
ln -fs /opt/python3/bin/python3.8 /usr/bin/python
ln -fs /opt/python3/bin/pip3 /usr/bin/pip

8.修改pip源

新增配置文件 vi ~/.pip/pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

9.验证pip工具

pip install requests pytest allure-pytest

10.将Jenkins用户加入root组以解决权限问题

gpasswd -a jenkins root

容器中安装allure

1.下载软件包

wget --no-check-certificate https://github.com/allure-framework/allure2/releases/download/2.17.3/allure-2.17.3.zip

2.解压

unzip allure-2.17.3.zip

3.配置环境变量vi /etc/profile

PATH=/opt/allure-2.17.3/bin:$PATH
export PATH

4.验证

source /etc/profile
allure --version

将修改后的容器发布成镜像

1.查看需要打包的镜像

docker ps -a

2.从容器创建为镜像

docker commit -m "description" -a "author" 31e6bab697ac jenkins:v5

参数说明:

docker commit #将容器提交成镜像
-m "description" #对该镜像的描述信息
-a "author" #镜像发布作者
31e6bab697ac #需要制作成镜像的容器ID
jenkins:v5 #新镜像名称及版本号

3.从镜像导出tar包(以便传给其他主机使用)

docker save -o jenkins_v5.tar jenkins:v5

4.发布完成后生成文件jenkins_v5.tar即可上传到其他服务器中使用

5.使用方式:(这里演示本地使用)

先删除本地的docker镜像jenkins:v5

docker rmi jenkins:v5

再加载本地文件的jenkins镜像包jenkins_v5.tar

docker load -i jenkins_v5.tar

最后运行该镜像为容器即可

docker run -d -p 8081:8080 -p 50001:50000 -v jenkinsv5:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true --restart=always --name jenkins_docker jenkins:v5

参数说明:

docker run 
-d #后台运行
-p 8081:8080 #端口映射
-p 50001:50000  #端口映射
-v jenkinsv5:/var/jenkins_home #路径映射,将提前创建好的docker卷jenkinsv5映射给容器内部的jenkins_home用作数据持久化
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 
-e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true 
--restart=always #开机自动启动该容器
--name jenkins_docker #为此容器命名为jenkins_docker
jenkins:v5  #要运行的镜像名称及版本