1-Jenkins - 配置Python环境

before

本篇讲解如何在Jenkins的容器中安装Python环境。

首先这里要分开来讲,由于不同的Jenkins镜像依赖的基础镜像不同,安装Python的方式也不同,所以,这里要分开说。
常见的两个镜像是:

[root@r /]# docker images | grep jenkins
jenkinsci/blueocean    latest              9393ec9589f7        25 hours ago        568MB
jenkins/jenkins        lts                 7e250da768ed        7 weeks ago         619MB

要想查看镜像依赖的基础镜像,你可以分别创建两个容器,然后进入容器的交互式环境,来查看。

  1. jenkins/jenkins镜像的基础镜像:
[root@r docker_data]# docker exec -it -u root myjenkins bash
root@35533a48d952:/# cat /etc/issue
Debian GNU/Linux 9 \n \l
  1. jenkinsci/blueocean镜像的基础镜像:
[root@r docker_data]# docker exec -it -u root myjenkins bash
bash-4.4# cat /etc/issue 
Welcome to Alpine Linux 3.9
Kernel \r on an \m (\l)

Debian使用的包管理工具是apt-get;而Alpine Linux的包管理工具是apk
所以,接下来要分别说两种方式如何安装Python,这里都是安装Python3.

Debian 安装 Python

后续操作都是在容器的交互式环境中进行。

ready

升级源列表

apt-get update

root@35533a48d952:/# apt-get update
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Ign:2 http://deb.debian.org/debian stretch InRelease                                              
Get:3 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB]                    
Get:4 http://deb.debian.org/debian stretch Release [118 kB]    
Get:5 http://deb.debian.org/debian stretch Release.gpg [2410 B]
Get:6 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [521 kB]
Get:7 http://deb.debian.org/debian stretch-updates/main amd64 Packages [27.9 kB]
Get:8 http://deb.debian.org/debian stretch/main amd64 Packages [7083 kB]
Fetched 7937 kB in 2s (3156 kB/s) 
Reading package lists... Done
root@35533a48d952:/# 

这该说的也说了,该提前准备的也准备了,开干吧!

解决依赖
为了不必要的麻烦,先安装依赖包,注意,还是容器环境。

apt-get -y install gcc automake autoconf libtool make
apt-get -y install make-guile
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get -y install sudo

go

再次强调,以下都是容器环境下操作。

  1. /var/jenkins_home下面新建python3子目录,并且cd进去
root@35533a48d952:/# cd /var/jenkins_home/
root@35533a48d952:/var/jenkins_home# mkdir python3
root@35533a48d952:/var/jenkins_home# cd python3/
  1. 下载Python3.6安装包并解压,完事压缩包就可以删掉了
root@35533a48d952:/var/jenkins_home/python3# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
root@35533a48d952:/var/jenkins_home/python3# tar -xvf Python-3.6.8.tgz
root@35533a48d952:/var/jenkins_home/python3# ls
Python-3.6.8  Python-3.6.8.tgz
  1. 配置最优安装
root@35533a48d952:/var/jenkins_home/python3# cd Python-3.6.8
root@35533a48d952:/var/jenkins_home/python3/Python-3.6.8# ./configure --prefix=/var/jenkins_home/python3 --enable-optimizations
root@35533a48d952:/var/jenkins_home/python3/Python-3.6.8# ./configure --enable-optimizations
  1. 编译安装
root@35533a48d952:/var/jenkins_home/python3/Python-3.6.8# make && make install 
  1. 建立软连
root@35533a48d952:/var/jenkins_home/python3/bin# ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3
root@35533a48d952:/var/jenkins_home/python3/bin# ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
  1. 测试
root@35533a48d952:/var/jenkins_home/python3/bin# cd /
root@35533a48d952:/# python3 -V
Python 3.6.8
root@35533a48d952:/# pip3 -V
pip 18.1 from /var/jenkins_home/python3/lib/python3.6/site-packages/pip (python 3.6)

Alpine Linux 安装 Python

我发现有两种方式可以安装:

  • 方式1:直接使用apk命令安装,非常方便,推荐使用这种方式,但也有缺点,貌似只有3.6版本可用,可能是我没有深入研究~
  • 方式2:下载tar包,解压,make安装,再配置软连,这个的优点就是,想安装什么版本就安装什么版本,想安装到哪就安装到哪,比较灵活。

方式1

  1. 升级源码包列表和安装必要的依赖:
bash-4.4# apk update -y
bash-4.4# apk add gcc
bash-4.4# apk add build-base
bash-4.4# apk add zlib-dev
  1. 寻找Python3的可用版本,下面python3-3.6.9-r2就是咱们这次的目标:
apk search python3

bash-4.4# apk search python3
python3-tkinter-3.6.8-r1
python3-idle-3.6.8-r1
python3-dev-3.6.9-r2
boost-python3-1.67.0-r2
postgresql-plpython3-contrib-11.7-r0
python3-dbg-3.6.9-r2
python3-3.6.9-r2
xapian-bindings-python3-1.4.9-r0
python3-tkinter-tests-3.6.8-r1
uwsgi-python3-2.0.17.1-r0
python3-wininst-3.6.9-r2
unit-python3-1.6-r0
postgresql-plpython3-11.7-r0
python3-doc-3.6.9-r2
python3-tests-3.6.9-r2
libpeas-python3-1.22.0-r0
  1. 安装吧:
apk add python3=3.6.9-r2

bash-4.4# apk add python3=3.6.9-r2
(1/3) Installing gdbm (1.13-r1)
(2/3) Installing xz-libs (5.2.4-r0)
(3/3) Installing python3 (3.6.9-r2)
Executing busybox-1.29.3-r10.trigger
OK: 474 MiB in 96 packages
  1. 测试,通过查看/use/bin就可以看到,已经自动的配置好了软连,你干就完了:
bash-4.4# ls /usr/bin/python*
/usr/bin/python3  /usr/bin/python3.6  /usr/bin/python3.6m
bash-4.4# pip3 -V
pip 18.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)
bash-4.4# python3 -V
Python 3.6.9
  1. 可选操作,升级pip版本:
pip3 install --upgrade pip

收工,有问题可以在下面留言反馈,我也是第一次这么安装。
是在不行,你可以使用方法2,慢慢配置,相信绝对没问题。

方式2

啥也别说了,进入容器交互式环境,开干吧!

Python各个版本列表:https://www.python.org/ftp/python/

  1. 解决依赖:
bash-4.4# apk update -y
bash-4.4# apk add gcc
bash-4.4# apk add build-base
bash-4.4# apk add zlib-dev
  1. 下载tar包并解压,这里以Python3.6.9版本为例:
[root@r docker_data]# docker exec -it -u root myjenkins bash
bash-4.4# wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
bash-4.4# tar -zvxf Python-3.6.9.tgz
bash-4.4# ls
Python-3.6.9  Python-3.6.9.tgz
  1. 配置最优安装
bash-4.4# cd Python-3.6.9
bash-4.4# ./configure --prefix=/opt/python3 --enable-optimizations
bash-4.4# ./configure --enable-optimizations
  1. 编译安装
bash-4.4# make && make install
  1. 建立软连
bash-4.4# ln -s /opt/python3/bin/python3.6 /usr/bin/python3
bash-4.4# ln -s /opt/python3/bin/pip3 /usr/bin/pip3
  1. 测试
bash-4.4# python3 -V
Python 3.6.8
bash-4.4# pip3.6 -V
pip 18.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)

测试

  1. 创建一个自由风格任务:

  2. 直接选择构建,并选择执行shell命令:

  3. 编辑如下命令:

  4. 选择立即构建,并查看控制台输出。

    可以看到,现在已经成功的返回了Python和pip版本信息。

question

1.make时内存不足
我在make时出现内存不足的情况:

由于我的是阿里云服务器,只能花钱提升内存!如果你是虚拟机,就多分配点内存吧!

see also:jenkins学习4-进docker容器安装python3环境

posted @ 2020-04-16 10:04  听雨危楼  阅读(5322)  评论(0编辑  收藏  举报