jenkins學習4-進docker容器安裝python3環境


前言

使用docker安裝jenkins環境,jenkins構建的workspace目錄默認是在容器里面構建的,如果我們想執行python3的代碼,需進容器內部安裝python3的環境。
(這篇不用看了,docker容器安裝環境比較復雜,可以參考添加宿主機節點的方式https://www.cnblogs.com/yoyoketang/p/12521464.html)

遇到問題

構建的時候輸入pip3,提示:pip3: not found

構建job后控制台輸出內容

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/yoyoketang
[yoyoketang] $ /bin/sh -xe /tmp/jenkins2225854290036644814.sh
+ pwd
/var/jenkins_home/workspace/yoyoketang
+ pip3
/tmp/jenkins2225854290036644814.sh: 3: /tmp/jenkins2225854290036644814.sh: pip3: not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

pip3: not found,說明jenkins容器內部並沒有python3的環境

進jenkins容器

進docker容器, 加上-u root 以root用戶權限進入容器

docker exec -it -u root 容器id /bin/bash

查看當前操作系統cat /etc/issue

root@cb8e397d5308:/# uname -a
Linux cb8e397d5308 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 GNU/Linux
root@cb8e397d5308:/# cat /etc/issue
Debian GNU/Linux 9 \n \l

這里查到的是Debian系統(不是ubuntu, 也不是centos),這里yum是沒有的,所以不能用yum安裝了,這里用apt-get代替yum
先執行更新apt-get

apt-get update

容器內部安裝python3環境

下載python3安裝包

進入容器內部, linux安裝python3環境,參考這篇https://www.cnblogs.com/yoyoketang/p/10195102.html

root@cb8e397d5308:/var/jenkins_home# cd /var/jenkins_home/
root@cb8e397d5308:/var/jenkins_home# mkdir python3
root@cb8e397d5308:/var/jenkins_home# cd python3/
root@cb8e397d5308:/var/jenkins_home/python3# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
root@cb8e397d5308:/var/jenkins_home/python3# tar -xvf Python-3.6.8.tgz
root@cb8e397d5308:/var/jenkins_home/python3# ls
Python-3.6.8  Python-3.6.8.tgz
root@cb8e397d5308:/var/jenkins_home/python3# cd Python-3.6.8
root@cb8e397d5308:/var/jenkins_home/python3/Python-3.6.8# ./configure --prefix=/var/jenkins_home/python3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for python3.6... no
checking for python3... no
checking for python... python
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... linux
checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/var/jenkins_home/python3/Python-3.6.8':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

執行 ./configure --prefix=/var/jenkins_home/python3時報上面錯:configure: error: no acceptable C compiler found in $PATH

apt-get 安裝依賴包

這個是因為缺少gcc相關依賴包,使用apt-get代替yum安裝相關依賴包

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

make編譯安裝

在/var/jenkins_home/python3/Python-3.6.8目錄執行make和make install 安裝

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

添加軟鏈接

添加python3軟鏈接

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

添加pip3軟鏈接

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

檢查環境

輸入pip3 和python3檢查環境

root@cb8e397d5308:/var/jenkins_home/python3/Python-3.6.8# pip3

root@cb8e397d5308:/var/jenkins_home/python3/Python-3.6.8# python3
Python 3.6.8 (default, Jan  1 2020, 10:15:14) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

使用pip3安裝一個requests包

pip3 install requests

ssl問題

如果pip3安裝的時候遇到報ssl相關問題:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

這個是因為缺少ssl依賴包,網上的解決方案是yum install openssl-devel ,由於Debian系統沒有yum,用apt-get安裝

apt-get -y install openssl libssl-dev

安裝完成之后只能解決系統自帶的python2對應的pip安裝問題,無法解決python3的pip3安裝問題。

解決辦法:上面編譯的時候需加上參數 --with-ssl

./configure --prefix=/var/jenkins_home/python3 --with-ssl

重新執行make和make install 就可以了

也可以在python環境檢查是否能導入ssl

root@cb8e397d5308:/var/jenkins_home/python3/Python-3.6.8# python3
Python 3.6.8 (default, Jan  1 2020, 10:15:14) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> 


免責聲明!

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



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