如何使用Docker搭建pypi私有仓库

Alexandra ·
更新时间:2024-11-01
· 987 次阅读

一、搭建

1、准备htpasswd.txt文件

该文件内容包含上传包至仓库时验证的用户名和密码

pip install htpasswd
htpasswd -sc htpasswd.txt <username>

2、启动容器

docker run --name pypiserver --restart=always -v /data/pypi/packages:/data/packages -v /root/htpasswd.txt:/data/htpasswd.txt -p 8080:8080 -d pypiserver/pypiserver -P htpasswd.txt packages
#需在宿主机上提前建立好data目录及htpasswd.txt文件

3、设置nginx反向代理

cat /usr/local/nginx/conf/exten/pypi.conf upstream pypi { server 127.0.0.1:8080; } server { listen 80; server_name pypi.local.me; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://pypi; } }

二、使用

1、建立测试项目

# 建立项目目录 mkdir -p linode_example/linode_example # 建立setup.py cat linode_example/setup.py from setuptools import setup setup( name='linode_example', packages=['linode_example'], #上传到仓库后的目录,如http://pypi.local.me/linode_example description='Hello world enterprise edition', version='0.1', # 版本号 url='http://github.com/example/linode_example', author='Linode', keywords=['pip','linode','example'] ) # 该文件内容为说明性内容,可根据自己的包的情况进行设置 # 建立__init__.py 主程序 cat linode_example/linode_example/__init__.py def hello_word(): print("hello world") # 打包并上传 python3.7 setup.py sdist # 打包,执行完后会在dist目录下有个tar包 twine upload --repository-url http://pypi.local.me dist/* # 上传时需要输入用户名和密码:admin/admin123

2、使用上传至仓库的包

pip install -i http://pypi.local.me --trusted-host pypi.local.me linode_example

打包注意事项:

1、所有需要打包的项目在git仓库中的目录结构必须一致,便于jenkinsfile自动化集成;

2、所有需要打包的项目的setup.py文件必须位于项目根目录下;

3、python使用统一版本,每个项目的版本需要固定,便于迭代。

您可能感兴趣的文章:使用docker+devpi搭建本地pypi源的方法DockerHub 镜像仓库的使用详解Docker搭建私有仓库之Harbor的步骤docker配置修改阿里云镜像仓库的实现Maven一键部署Springboot到Docker仓库为自动化做准备(推荐)docker私有仓库harbor搭建过程Docker搭建Harbor公开仓库的方法示例docker 查询或获取私有仓库(registry)中的镜像的方法



pypi 仓库 Docker

需要 登录 后方可回复, 如果你还没有账号请 注册新账号