前言:

本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下

创建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 80:8080 --name jenkins1 -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins # 进入容器准备安装Python、插件等
[root@localhost ~]# docker exec -it jenkins1 /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

Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件的更多相关文章

  1. Docker DevOps实战:GitLab+Jenkins(1)- GitLab容器搭建、使用SourceTree pull/push项目

    GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...

  2. s11 Docker+DevOps实战--过程和工具

    开发人员本地提交代码,本地使用容器模拟生产环境测试,测试通过提交到git master 分支,就会触发pipeline执行集成构建.集成工具: gitlab-vi,travis,或Jenkins.自动 ...

  3. Python基础===使用virtualenv创建一个新的运行环境

    virtualenv简直是一个神器,以ubuntu环境为例, 先安装virtualenv 然后执行如下命令: 多版本创建env的方式: virtualenv 虚拟环境文件目录名 python=pyth ...

  4. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(2)- Jenkins初始化、Jenkins插件、Jenkins配置、自动化测试

    Jenkins初始化 step-1 访问Jenkins http://ip:80  step-2 查看密码.输入密码 # 方式一:通过查看容器日志 [root@localhost ~]# docker ...

  5. Docker DevOps实战:GitLab+Jenkins(2)- CI/CD相关配置

    Jenkins关联GitLab Gitlab仓库配置Webhooks 上传项目到GitLab,Jenkins构建

  6. Docker DevOps实战: 一分钟搭建Hexo博客

    原文地址:https://yq.aliyun.com/articles/53772 Hexo博客 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown解析文章,在几秒内,即可利 ...

  7. Python:使用pyinstaller打包含有gettext locales语言环境的项目

    问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用 ...

  8. Docker深入浅出系列 | Docker Compose多容器实战

    目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...

  9. Docker下实战zabbix三部曲之二:监控其他机器

    在上一章<Docker下实战zabbix三部曲之一:极速体验>中,我们快速安装了zabbix server,并登录管理页面查看了zabbix server所在机器的监控信息,但是在实际场景 ...

随机推荐

  1. Python 应用爬虫下载QQ音乐

    Python应用爬虫下载QQ音乐 目录: 1.简介怎样实现下载QQ音乐的过程: 2.代码 1.下载QQ音乐的过程 首先我们先来到QQ音乐的官网: https://y.qq.com/,在搜索栏上输入一首 ...

  2. 【AIOT】智能感知--人

    From: https://liudongdong1.github.io/ 1. 人体存在感知 目标:检测环境中的所有人体,标记出每个人体的坐标位置:不限人体数量,适应中低空斜拍.人体轻度遮挡.截断等 ...

  3. VMware上安装的Ubuntu不显示全屏解决方法

    花费了好一会才把电脑上的Vmware装上,把Ubuntu装到虚拟机上,谁知道Ubuntu不显示全屏,我调了分辨率,奈何Ubuntu里面固定的分辨率没有跟我电脑匹配的,然后开始寻找解决方法,在网上找了很 ...

  4. C# lock的语法糖原理--《.net core 底层入门》之自旋锁,互斥锁,混合锁,读写锁

    在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连 ...

  5. spring 》Cglib赋值

    第一个:字节码文件时带有ENHANCERBYCGLIB,FastClassByCGLIB组成的文件名 第二个:字节码文件时带有ENHANCERBYCGLIB 第三个:字节码文件时带有FastClass ...

  6. Spring Boot +Vue 项目实战笔记(三):数据库的引入

    这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码. 一.引入数据库 之前说过数据库的采用是 MySQL,算是比较主流的选择,从性能和体量等方面都比较优秀,当然也有一些弊端,但数据库不是我们 ...

  7. 浅谈Java和Go的程序退出

    前言 今天在开发中对Java程序的退出产生了困惑,因为题主之前写过一段时间Go,这两者的程序退出逻辑是不同的,下面首先给出结论,再通过简单的例子来介绍. 对于Java程序,Main线程退出,如果当前存 ...

  8. Nginx对代理HTTP资源的限制访问

    为了限制连接的数量,首先,使用指令来定义密钥并设置共享内存区域的参数(工作进程将使用该区域来共享键值的计数器).作为第一个参数,指定作为关键字计算的表达式.在第二个参数区域中,指定区域的名称及其大小. ...

  9. NRF52832空中升级DFU

    Secure DFU环境搭建 升级原理,加密原理在此不做描述,详情参考http://www.cnblogs.com/iini/p/9314246.html 1.工具一览 gcc-arm-none-ea ...

  10. Python - break、continue 的使用

    前置知识 break.continue 会结合循环使用的,所以要先学会循环哦 python 提供了两种循环语句 for 循环:https://www.cnblogs.com/poloyy/p/1508 ...