如何使用Docker搭建pypi私有仓库
作者:大碗油泼 发布时间:2023-08-28 01:58:58
标签:Docker,搭建,pypi,私有,仓库
一、搭建
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使用统一版本,每个项目的版本需要固定,便于迭代。
来源:https://www.cnblogs.com/aerospace191/p/13985654.html


猜你喜欢
- 一般ARP攻击的对治方法现在最常用的基本对治方法是“ARP双向绑定”。由于ARP攻击往往不是病毒造成
- 115网络U盘(http://u.115.com)是由雨林木风在今年5月推出的一款免费网络数据存储服务,该服务面市不久就获得了众多网民的热捧
- 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有
- 最近和客户交谈,报完价格后,客户经常说的一句话就是“这么贵,那不如做竞价排名了”,那笔者在这里就给大
- 前言最近工作中在做线上服务器,安装centos7.2 x64最小化安装,需要做链路聚合,双网卡绑定。在centos 6.x 和 centos
- 使用过嘀咕的“嘀神”插件的用户都知道,这个插件可以实现将嘀咕信息即时同步到其他微博客的功能。对于Twitter重度用户,可能也会需要将Twi
- 没有谁是天生的天才,这句话适用于任何人。同样,网站设计也是如此,开始对这门艺术有感觉的时候,一定是看到了别人的作品后才惊醒了你那根本来沉睡的
- 通常,你可以通过模块设置中的“菜单分配(Menu Assignment)”将模块分配给某些菜单项,以在它们对应的页面里显示。但有时你想将模块
- 首先要安装VirtualBox的增强版功能(VBoxGuestAdditions)在 设备--->安装增强版功能----->运行
- 建站三部曲(1)丰富内容:建站伊始,针对乐儿网缺少内容的情况,通过派发实物礼品的形式来鼓励会员发布大量原创性内容,网站区内的日志数量和帖子数
- 1、准备基本的chroot环境在进入chroot环境之前要先准备好相应的设置,在本例中我们打算将ftpd chroot到/var/chroo
- 1、将当前位置的“主页”字样,改为“你自己的网站名称”。解释
- 一. bootfs和rootfs通常而言,Linux的操作系统由两类文件系统组成:bootfs(boot file system)和root
- IXWebHosting怎么样?自从我的网站上线以后就有人不断的发邮件问我这个问题,但是要简单的回复这个问题却不容易,因为不同的人有不同的需
- 目录关于 Kubernetes基础环境准备安装 VirtualBox下载 Ubuntu 16 系统镜像虚拟机 x3虚拟机 IP配置主机名SS
- 首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决
- 因为对属性了解不多,所以给出我一上午自己琢磨出来的方法。这个方法主要是适合运用在XP系统下无法安装IIS来进行配置ASP环境和不会安装Apa
- 木马是一种基于远程控制的病毒程序,该程序具有很强的隐蔽性和危害性,它可以在人不知鬼不觉的状态下控制你或者监视你。有人说,既然木马这么厉害,那
- 通过“禁用出站邮件”选项,可以禁用来自所有 SMTP 队列的出站邮件。例如,如果组织中有活动的病毒,则此选项将非常有用。注意:“禁用出站邮件
- 1.1 直接路由(Direct forwarding)当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收