使用pypiserver搭建私有源

背景

        jenkins机器网络有限制,需要单独搭建私有pypi源来使用。

        私有pypi源机器网络也不通,从windows本机电脑中下载whl包上传到私有仓库。

搭建步骤

搭建私有pip源

本地构建pypiserver镜像

1、dockerfile文件

FROM python:3.9-slim

# 安装 pypiserver
RUN python -m pip install --upgrade pip && pip install pypiserver

# 创建存储包的目录
RUN mkdir -p /app/storage

# 设置工作目录
WORKDIR /app

# 定义环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 启动 pypiserver(根据你的配置调整命令)--backend", "cached-dir"表示使用缓存目录,会加快镜像仓库速度
ENTRYPOINT ["pypi-server", "-p", "9090", "--backend", "cached-dir" , "--log-file", "pypiserver.log", "/app/storage"]

2、构建+部署,启动的时候仓库存储目录根据自己需求改

docker build -t my-pypiserver:1.0 .
docker save -o pypiserver.tar.gz my-pypiserver:1.0
#上传镜像包到服务器并启动
docker run -itd --rm -p 9090:9090  --name my-pypiserver-container   -v /data/python-packages:/app/storage  my-pypiserver:1.0

3、curl测试是否安装成功,出现如下列表表示安装成功,若不成功查看docker容器日志。

4、使用命令,注意--trusted-host为访问的服务器地址,必须加入,最后的/不可省略。否则一直会报错version不匹配。

pip install -r requirements.txt --index-url http://xxxx:9090/simple/ --trusted-host xxxx

 

本地上传包(私有仓库节点通网的话忽略此步骤,直接配置镜像同步即可)

1、本地下载python镜像拉whl包(需要本地安装了docker)

#获取官方镜像
docker pull python:3.9.9-slim-buster
#启动容器
docker run -itd --name python3.9.9 --network host python:3.9.9-slim-buster

2、根据 `requirements.txt` 文件生成 `.whl`(Wheel)文件:

#拷贝requirements.txt到容器
docker cp .\requirements.txt python3.9.9:/opt
#进入容器
docker exec -it 15f0 bash
##设置python镜像源(清华源)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
cd /opt
##创建虚拟环境并激活
python -m venv myenv
source myenv/bin/activate
python -m pip install --upgrade pip
pip install wheel
pip install -r requirements.txt
pip wheel -r requirements.txt --wheel-dir=./dist
#退出容器,拷贝包到本地
exit
docker cp python3.9.9:/opt/dist E:\work

#如果需要,清理 `pip` 缓存以释放空间。
pip cache purge

3、手动上传whl包到pypiserver镜像仓库,至此大功告成,已经可以使用了,唯一缺点就是需要手动维护包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值