前言

很多小伙伴可能在考虑 jenkins 拉取了 github 上的代码后,发现还越少 python3 环境,那能怎么办呢?

咨询了一位运维朋友给我的答案是,将 python3 挂载到容器工作目录上,或者直接复制。

一、浅谈容器内安装 python3 方案

1、将 python3 挂载到容器工作目录上;

2、直接复制 python3 目录到工作目录上;

3、jenkins 容器内安装 python3;

结果:1 、2均均阵亡,为何?明显系统不一样哈,虽然能在命令行中输入 python3 但是 pip3用不了的,执行脚本更是乱七八糟的报错。(所以不推荐)

最后只能看 3 的了。然后在试验的过程中,发现第3种又分为两种,

① weget 安装(不推荐,基本和现安装的方法差不多,先要安装一些依赖包,如 gcc 等)

② apk add 安装(此版本是alpine :apk add,能够快速安装完成)

最后注意系统版本问题:

如果是 centos 那即是 yum
如果是 ubuntu 那即是 apt-get
如果是 alpine 那即是 apk

二、Debian系统使用 apt-get 命令安装

1、进入 jenkins 容器 命令:docker exec -itu root 容器ID或者名称

2、查看容器内系统版本:cat /etc/issue

3、更新apt-get : apt-get update

4、创建python3安装目录:mkdir python3

5、下载python3.8.6版本的压缩包:wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz

6、解压:tar -xvf Python-3.6.8.tgz

7、执行 . /configure --prefix=/var/jenkins_home/python3 --with-ssl  报错缺少依赖包

8、安装依赖包:

apt-get install build-essential -y

apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev -y

apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y

apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev -y

apt-get install libssl-dev openssl -y

9、make编译安装 在/var/jenkins_home/python3/Python-3.8.6目录执行make和make install 安装

  a、./configure --prefix=/var/jenkins_home/python3 --with-ssl make make install

  b、make

  c、make install

10、添加python3软连接:

  ln -s /var/jenkins_home/python3/bin/python3.8  /usr/bin/python3

  ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3

11、检查环境

输入pip3 和python3检查环境

三、alpine 系统使用 apk命令安装

1、进入 jenkins 容器 命令:docker exec -itu root 容器ID或者名称

2、首先更改 apk 配置源,不然下载速度太慢了。配置文件路径:/etc/apk/repositories

bash-4.4# cd /etc/apk/
bash-4.4# echo "https://mirrors.ustc.edu.cn/alpine/v3.6/main/" > repositories
bash-4.4# echo "https://mirrors.ustc.edu.cn/alpine/v3.6/community/" >> repositories
bash-4.4#

3、更新 apk 源:apk update

bash-4.4# apk update
fetch https://mirrors.ustc.edu.cn/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch https://mirrors.ustc.edu.cn/alpine/v3.6/community/x86_64/APKINDEX.tar.gz
v3.6.5-44-gda55e27396 [https://mirrors.ustc.edu.cn/alpine/v3.6/main/]
v3.6.5-34-gf0ba0b43d5 [https://mirrors.ustc.edu.cn/alpine/v3.6/community/]
OK: 8533 distinct packages available

4、直接输入:apk add python3

现在 python 版本为:3.6.8

bash-4.4# apk add python3
(1/7) Downgrading readline (7.0.003-r1 -> 6.3.008-r5)
(2/7) Downgrading bash (4.4.19-r1 -> 4.3.48-r1)
Executing bash-4.3.48-r1.post-upgrade
(3/7) Installing libressl2.5-libcrypto (2.5.5-r2)
(4/7) Installing gdbm (1.12-r0)
(5/7) Installing xz-libs (5.2.3-r0)
(6/7) Installing libressl2.5-libssl (2.5.5-r2)
(7/7) Installing python3 (3.6.8-r0)
Executing busybox-1.29.3-r10.trigger
OK: 466 MiB in 96 packages

四、验证 python3

1、查看版本:python3 -V

bash-4.4# python3 -V
Python 3.6.8

2、查看 pip3 版本:pip3 -V

bash-4.4# pip3 -V
pip 18.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)

3、更新pip3:pip3 install --upgrade pip

bash-4.4# pip3 install --upgrade pip
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Collecting pip
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f54e86969e8>: Failed to establish a new connection: [Errno -3] Try again',)': /packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)",)': /packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)",)': /packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl
Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 93kB/s
Installing collected packages: pip
Found existing installation: pip 18.1
Uninstalling pip-18.1:
Successfully uninstalled pip-18.1
Successfully installed pip-19.3.1

4、生成 requirements.txt:

  • ①生成方法:pip freeze > requirements.txt
  • ②使用方法:pip install -r requirements.txt

5、我是直接粘贴上去:vi requirements.txt

保存退出:

6、执行:pip3 install -r requirements.txt

五、kernel系统安装

jenkins容器内安装python3的更多相关文章

  1. jenkins容器内安装Python3之后使用pip3 install xxx失败,可以考虑换国内源

    问题:pip3 install xxx失败 方案一:修改配置文件 首先在当前用户目录下建立文件夹.pip,然后在文件夹中创建pip.conf文件,再将源地址加进去即可. mkdir ~/.pipvim ...

  2. Jenkins(2)docker容器中安装python3

    前言 使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境. 进jenki ...

  3. 容器内安装nvidia,cuda,cudnn

    /var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录 du -hs /var/lib/docker/ 命令查看磁盘使用 ...

  4. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件

    前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...

  5. 在Jenkins容器中安装docker-compose

    首先使用Docker容器安装Jenkins 链接参考 安装成功后使用管理员权限进入到Jenkins容器 docker exec -it -u root jenkins bash 下载docker-co ...

  6. jenkins容器内修改root密码--ubuntu系统

    http://www.voidcn.com/article/p-yvnoogkc-ng.html 由于jenkins官方镜像是ubuntu系统,所有啥的都用 sudo 换到root账号,然后登陆har ...

  7. windows上的docker容器内安装vim

    Reading package lists... Done Building dependency tree Reading state information... Done E: Unable t ...

  8. docker容器内安装 rz、sz

    操作系统:ubuntu rz.sz命令找不到: 执行命令:apt-get update && apt-get install lrzsz

  9. Jenkins(Docker容器内)使用宿主机的docker命令

    1.Jenkins镜像 Docker容器内的Jenkins使用容器外宿主机的Docker(即DooD,还有另外的情况就是DioD),google一下有几种说法,但是都没试成功(试过一种就是修改宿主机/ ...

随机推荐

  1. C++、Java、Python、Linux、Go、前端、算法,慕课资料分享

    C++.Java.Python.Linux.Go.前端.算法,慕课资料分享 微信公众号:大道同行JAVA 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 又见面了.废话不多说,最近多了一些在 ...

  2. 对抗生成网络GAN

      该方法常用于: 图像生成 图像修复,训练用了MSE+Global+Local数据,其中Global+Local判别式用于全局+局部一致性. 图像超分辨率重构   GAN的基本原理,主要包含两个网络 ...

  3. 【WPF】 OxyPlot图表控件学习

    最近在学习OxyPlot图表控件,一些基本的学习心得,在这里记录一下,方便以后进行查找.   一.引用 OxyPlot控件可以直接在VS的 " Nuget " 里面下载   选择: ...

  4. DDL和客户端ip监控

    DDL触发器监控脚本部署步骤 以下操作请使用sys用户: --第一步:创建表(此表主要保存ddl触发器产生的信息),可以根据不同的业务,使用相关的监控用户,在此监控用户为c##upctest 从可维护 ...

  5. 20200713晚 noip14

    考场 很紧张,上午考太烂了 开场看到"影魔",想起以前看过(但没做),心态爆炸,咆哮时被 hkh diss 了 T1 一开始想建边跑最长路,每个点在记录一下 \(\min\{a\} ...

  6. openswan专栏序言

    openswan专栏序言 "一杯茶,一包烟,一个bug解一天!!!". ​ 2020年春季,正值新冠病毒在全球肆虐之际,美国的疫情已经相当的严峻,每天仍以3万速度狂奔.而国内的疫情 ...

  7. bean.xml配置数据源和读取配置文件配置数据源

    一.bean.xml配置数据源 bean.xml装配bean,依赖注入其属性的时候,对应实体类中属性一定要有set方法, 二.读取配置文件配置数据源 1.配置文件 bean.xml配置: classp ...

  8. WPF Prism8.0中注册Nlog日志服务

    无论是Nlog还是Serilog, 它们都提供了如何快速在各类应用程序当中的快速使用方法. 尽管,你现在无论是在WPF或者ASP.NET Core当中, 都可以使用ServiceCollection来 ...

  9. Centos下Yum安装PHP7.0

    默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 ...

  10. composer 下载包慢

    方法一: 修改 composer 的全局配置文件(推荐方式) 打开命令行窗口(windows用户)或控制台(Linux.Mac 用户)并执行如下命令: composer config -g repo. ...