docker搭建pypi服务,实现python包版本永久保存

发布时间 2023-10-10 16:57:25作者: DidierFeng

1. 宿主机上安装htpasswd

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple htpasswd

2. 使用htpasswd生成账户和密码

htpasswd -sc htpasswd.txt testuser

3. 拉取pypiserver镜像

docker pull pypiserver/pypiserver

4. 使用docker安装pypi容器

4.1. 创建数据卷

docker volume create --name myvol_pypi

4.2. 安装pypi

docker run --name pypi --mount source=myvol_pypi,target=/data/packages -p 8080:8080 -d pypiserver/pypiserver -P . -a .

run:安装容器

--mount:挂载,source是卷名称,自动创建;target是挂载的container路径名称
--name:为容器命名
--restart always: 无条件重启
-v:生产环境的真是文件映射到docker环境的文件,保证/data/pypi/packages真实存在
-p:真实端口映射,前一个是生产环境的真实端口,后一个是dockers环境的服务端口
-d:后台启动
-P:不指定密码文件
-a:任何用户都可以登录
packages:指定文件夹名称,这个和Dockerfile有关,固定命令不需要修改和理解

4.3. 登录pypi服务

docker exec -it pypi /bin/bash

5. 上传python包

twine upload --repository-url http://服务器对应地址:8080 dist/*

6. 相应环境安装python包

pip install -i http://服务器对应地址:8080 adventure

7. 相应环境下载python包

7.1. linux系统下载

pip download . -i http://172.26.15.241:8080 adventure

7.2. windows系统下载python包到当前目录

pip download -i http://172.26.15.241:8080 adventure