Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件
前言:
本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下
创建Jenkins容器
# 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/jenkins # 创建Jenkins挂载到宿主机目录 [root@localhost ~]# mkdir -p /var/jenkins_node # 宿主机挂载目录赋予读写执行权限 [root@localhost ~]# chmod -R 777 /var/jenkins_node # 启动镜像,后台运行容器,使用路径挂载卷的方式 [root@localhost ~]# docker run -d -p 8080:8080 -p 50000:50000 --name jenkins -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins # 进入容器准备安装Python、插件等 [root@localhost ~]# docker exec -it jenkins /bin/bash
安装Python前置准备工作
👇这些是菠萝笔记里面的,在这我踩了第一个坑,由于网问题,下载总是失败,一开始以为是centos(8.X)问题,提示我下载的这些插件版本过旧,不给下;后来又搭了一个centos7.X的跟菠萝一样的,还是失败,如果你们有vpn可以参照菠萝这个来,如果跟我一样一直报错的,往下看
# 获取最新的软件包 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
由于我们构建的容器底层centos是简版,各类命令不全,需要我们自己安装,比如后面python环境要用到的pip,甚至vi、vim都没有,就需要我们自己下载安装
针对参照菠萝命令同样报错的,可以执行下面命令
# 上述菠萝那些命令顺序执行一遍,即使它报错,照样执行
# 容器环境安装 wget命令,这个照样会报错,别怕,一直执行,直到没有报错,我下了5遍才成功,这个破网 root@7db4335f0dd4:/# apt-get install -y wget
# 下载pip命令,同样这个照样会报错,别怕,一直执行,直到没有报错
root@7db4335f0dd4:/# apt install python3-pip
安装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
# 我的,网下不了的用我这个 # Windows下载Python-3.6.8.tgz包,使用Xftp放到宿主机的/root目录下 链接:https://pan.baidu.com/s/1dt75HYL_zQmfVjA4BDFvQQ 提取码:nqn0 # 永久有效,别忘了来个三连铁子!!!,谢谢! # 原来的容器窗口不要关,再开个连接,将Python-3.6.8.tgz包放到容器里面 [root@localhost ~]# docker cp /root/Python-3.6.8.tgz jenkins1:/usr/local/src/
# 回到容器连接窗口,cd到python包的目录下
root@7db4335f0dd4:/# cd /usr/local/src
# 解包
root@7db4335f0dd4:/usr/local/src/# tar -zxvf Python-3.6.8.tgz
# 重命名
root@7db4335f0dd4:/usr/local/src/# mv Python-3.6.8 py3.6
使用make命令对python进行编译安装
# cd python目录下
root@7db4335f0dd4:/usr/local/src/# cd py3.6
# 编译安装
root@7db4335f0dd4:/usr/local/src/py3.6# ./configure --prefix=/usr/local/src/py3.6
root@7db4335f0dd4:/usr/local/src/py3.6# make && make install
# 创建python的软链接
root@7db4335f0dd4:/usr/local/src/py3.6# ln -s /usr/local/src/py3.6/bin/python3.6 /usr/bin/python3
# 创建pip3的软链接,因为我在python安装前准备工作时,已经安装过了,所以不需要执行;如果你们使用菠萝python安装前准备工作,需要执行以下
root@7db4335f0dd4:/usr/local/src/py3.6# ln -s /usr/local/src/py3.6/bin/pip3 /usr/bin/pip3
验证 pythone3 环境
root@7db4335f0dd4:/usr/local/src/py3.6# python3 root@7db4335f0dd4:/usr/local/src/py3.6# pip
安装项目依赖的类库
需要在 python 项目生成一个 requirement.txt,具体教程可以看:https://www.cnblogs.com/gltou/p/15211228.html
# 将requirement.text放到宿主机/root目录下 # 从宿主机复制到容器内 [root@localhost ~]# docker cp /root/requirements.txt jenkins1:/usr/local/src/
#cd到src目录下,pip3安装项目依赖的相关类库
root@7db4335f0dd4:/usr/local/src/py3.6# cd ../
root@7db4335f0dd4:/usr/local/src/py3.6# pip3 install -r requirements.txt
安装Allure报告插件
# 下载,放到宿主机/root目录下 # github:https://github.com/allure-framework/allure2/releases 或者 # 网卡的从葛老头的网盘下载 链接:https://pan.baidu.com/s/1cOHmkbj9Yx_LFhc3kBW5dg 提取码:pb5e
# 从宿主机复制到容器内
[root@localhost ~]# docker cp /root/allure-2.14.0.zip jenkins1:/usr/local/src/
# 解压缩
root@7db4335f0dd4:/usr/local/src/py3.6# cd ../
root@7db4335f0dd4:/usr/local/src/# unzip allure-2.14.0.zip
# 目录重命名
root@7db4335f0dd4:/usr/local/src/# mv allure-2.14.0 allure
# 赋予文件夹内所有内容最高权限
root@7db4335f0dd4:/usr/local/src/# chmod -R 777 allure
# 配置allure 和 py 环境变量
root@7db4335f0dd4:/usr/local/src# cat >> /root/.bashrc << "EOF"
> export PATH=/usr/local/src/allure/bin:$PATH
> export PATH=/usr/local/src/py3.6/bin:$PATH
> EOF
# 更新环境变量配置文件
root@7db4335f0dd4:/usr/local/src# source /root/.bashrc
# 验证环境变量
root@7db4335f0dd4:/usr/local/src# allure --version
2.14.0
root@7db4335f0dd4:/usr/local/src# python3 --version
Python 3.6.8
配置JDK环境变量
# 查看当前系统已配置的环境变量 root@7db4335f0dd4:/usr/local/src# export declare -x COPY_REFERENCE_FILE_LOG="/var/jenkins_home/copy_reference_file.log" declare -x HOME="/root" declare -x HOSTNAME="7db4335f0dd4" declare -x JAVA_HOME="/opt/java/openjdk" declare -x JENKINS_ENABLE_FUTURE_JAVA="true" declare -x JENKINS_HOME="/var/jenkins_home" declare -x JENKINS_INCREMENTALS_REPO_MIRROR="https://repo.jenkins-ci.org/incrementals" declare -x JENKINS_SLAVE_AGENT_PORT="50000" declare -x JENKINS_UC="https://updates.jenkins.io" declare -x JENKINS_UC_EXPERIMENTAL="https://updates.jenkins.io/experimental" declare -x JENKINS_VERSION="2.308" declare -x OLDPWD="/usr/local/src/py3.6" declare -x PATH="/usr/local/src/py3.6/bin:/usr/local/src/allure/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" declare -x PWD="/usr/local/src" declare -x REF="/usr/share/jenkins/ref" declare -x SHLVL="1" declare -x TERM="xterm" root@7db4335f0dd4:/usr/local/src# cat >> /root/.bashrc<< "EOF" > export PATH=$JAVA_HOME/bin:$PATH > EOF
# 配置JDK环境变量 root@7db4335f0dd4:/usr/local/src# cat >> /root/.bashrc<< "EOF" > export PATH=$JAVA_HOME/bin:$PATH > EOF # 更新环境变量配置文件 root@7db4335f0dd4:/usr/local/src# source /root/.bashrc