dockerfile Jenkins+python+pytest(一)

1、python 项目生成requirements.txt 文件
1.1、先安装pipreqs库

pip install pipreqs

1.2、在项目的根目录

pipreqs ./ --encoding=utf8 --force

以下操作在Linux系统上进行

2、创建pip 更换源文件

cd /home
mkdir dockerfile
cd dockerfile
touch pip.conf
#文件内容
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

#文件内容

3、查看ssl 版本 如果ssl 版本较低,需要升级或者删除,python3.10.0 我安装的是 openssl-3.0.4

[root@iZwz9f559fa6a275jj2x0sZ openssl-3.0.4]# openssl version
OpenSSL 1.1.1k  FIPS 25 Mar 2021

whereis openssl
rm -rf 文件地址

yum group install 'Development Tools'
yum install perl-core zlib-devel -y
cd /home
#下载源文件
wget https://www.openssl.org/source/openssl-3.0.4.tar.gz
#解压
tar -zxvf openssl-3.0.4.tar.gz
cd /home/openssl-3.0.4

./config --prefix=/usr/local/openssl no-zlib

make && make install && make clean

openssl version
-bash: /usr/bin/openssl: 没有那个文件或目录
ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl

openssl version
openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3

openssl version
openssl: error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

openssl version
OpenSSL 3.0.4 21 Jun 2022 (Library: OpenSSL 3.0.4 21 Jun 2022)


4、编译安装python,Linux会自带安装Python,可以运行python --version,删除自带版本

cd /home/dockerfile
#如果慢的话,可以先下载好然后再上传到Linux系统上
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz
#解压
tar -xvf Python-3.10.0.tar.xz
cd /home/dockerfile/Python-3.10.0/Lib/site-packages
touch pythonwork.pth
#文件内容
#jenkins 拉取gitlab 项目代码 存放地址
/var/jenkins_home/workspace/songqin_jkzdh/demo2
#文件内容
cd Python-3.10.0

./configure --prefix=/home/dockerfile/python3 --with-openssl=/usr/local/openssl --enable-shared
make && make install && make clean
cd /home/dockerfile/python3/bin
#修改bin 文件夹下的文件路径 将#!/home/dockerfile/python3/bin/python3.10 改为#!/var/jenkins_home/python3/bin/python3.10
#sed -i 's#查找内容#替换内容#g' `grep -rl 查找内容 路径`
sed -i 's#/home/dockerfile#/var/jenkins_home#g' `grep -rl /home/dockerfile /home/dockerfile/python3/bin`

#/var/jenkins_home/python3/bin/python3.10 这个是docker 容器内地址
#将第一步生成的requirements.txt  复制到Linux 系统 /home/dockerfile 文件下

5、编写dockerfile文件 ,登入Linux系统

cd /home/dockerfile

touch felicia_jenkins_dockerfile
#文件内容
#基于jenkins/jenkins 镜像
FROM jenkins/jenkins

# 2.镜像维护者的姓名和邮箱地址
MAINTAINER felicia <945060475@qq.com>

# 3.指定当前工作目录
WORKDIR /var/jenkins_home

# 4.将当前目录文件夹下的所有文件拷贝到指定目录


COPY ./python3 ../python3
COPY ./requirements.txt ..

# 5.切换到root用户
USER root

# 6.更换pip 源
RUN mkdir ~/.pip

COPY ./pip.conf ..


#7.添加软连接
RUN ln -s /var/jenkins_home/python3/bin/python3.10 /usr/bin/python3
RUN ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
RUN ln -s /var/jenkins_home/python3/bin/pytest /usr/bin/pytest

#文件内容

5、构建镜像&运行

cd /home/dockerfile
#打包镜像
docker build -f felicia_jenkins_dockerfile  -t felicia_jenkins:1.0 .
#创建容器 阿里云出站规则&防火墙墙需要开放端口3333
docker run -d -p 3333:8080 --name felicia_jenkins --privileged=true -v /home/jenkins:/var/jenkins_home felicia_jenkins:1.0
#创建容器遇到该问提 重启docker 重新创建
docker: Error response from daemon: driver failed programming external connectivity on endpoint felicia_jenkins (61996c4beb88b67084834f3ae17650aa12b43575627cc9a198cfe5505ee0a9a0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3333 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).
systemctl restart docker
#进入容器
docker exec -it felicia_jenkins /bin/bash
cd ../
mv python3 /var/jenkins_home

python3 --version
python3: error while loading shared libraries: libpython3.10.so.1.0: cannot open shared object file: No such file or directory
ln -s /var/jenkins_home/python3/lib/libpython3.10.so.1.0 /usr/lib/libpython3.10.so.1.0
#检验pip3 python3 是否安装成功
pip3 --version
pip 21.2.3 from /var/jenkins_home/python3/lib/python3.10/site-packages/pip (python 3.10)
python3 --version
Python 3.10.0

cd /var
cp pip.conf ~/.pip
pip3 install -r requirements.txt
#查看安装
 pip3 list

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值