jenkins容器內安裝python3


前言

很多小伙伴可能在考慮 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系統安裝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM