网站运营
位置:首页>> 网站运营>> 如何使用Docker搭建pypi私有仓库

如何使用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

0
投稿

猜你喜欢

  • 我是侠客,自从创办“侠客站长站”的过程中,我真正的了解了我自己。如果,你想了解侠客站长站的成长,可以搜索“侠客站长站”的域名注册时间、ale
  • 近期读了一些关于网络入侵的文章,感觉到增强网络安全是一项日常性的工作,并不是说网络设备、服务器配置好了就绝对安全了,操作系统和一些软件的漏洞
  • named查询使用的是UDP协议和端口53。响应通过UDP返回,除非他们大于512K,这种情况使用TCP。服务器之间的“区传送”则都使用TC
  • DNS软件是黑客热衷攻击的目标,它可能带来安全问题。这里是一些保护DNS服务器最有效的方法。1.使用DNS转发器DNS转发器是为其他DNS服
  • 11月6日消息,科技业市场研究机构IDC周四公布调查,今年第3季全球手机市场龙头宝座,依旧由挪威大厂诺基亚稳坐;但在智能手机战场厮杀中,黑莓
  • 相信每个人都对 回收站(trashcan)很熟悉,因为无论是对 Linux 用户,还是 Windows 用户,或者 Mac 用户来说,它都很
  • 10月14日国际报道 若你的笔记本或移动设备内建有加速感应器,新的FireFox 3.6版将可侦测笔记本的方向,并将该信息传给浏览器的应用程
  • 网址:http://www.google.cn/intl/zh-CN/renrou/index.html什么是人肉搜索?人肉搜索与刺青、美白
  • 北京时间1月3日消息,据国外媒体报道,新闻出版总署(以下简称&ldquo;版署&rdquo;)日前发出通知称,已终止《魔兽世
  • 今天的教程来讲讲怎么让你的外贸网站更加人性化。人性化原意是指厂家在设计产品时力求从人体工程学、生态学和美学等角度达到完美,从而真正实现科技以
  • 北京时间5月1日消息 据消息人士透露,微软董事会周三召开会议,讨论如何打破在收购雅虎问题上的僵局,会议结束后将发布公告。目前还不清楚微软是发
  • 康盛的系列产品,包括Discuz、UCHome、Supesite都集成了同一个用户系统——UCenter,用户登录的密码也保存在UCente
  • 在9月10日晚的&ldquo;阿里巴巴十周年庆典&rdquo;上,最让人印象深刻的不是马云的&ldquo;朋克装&a
  • 在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="sele
  • 1、 激愤运用法通过主题的倡导,让大家一致产生赞同、鼓舞、荣耀等心态,或者揭露某事件让会员感觉到耻辱、鄙视‘讨厌的感觉,内容一定是简短完整的
  • 火如荼的IT行业,除了许多地方让人无奈之外,倒也培养出了许多互联网时代特有的人才。今便借《不可错过的IT女孩TOP10》一文,来调侃下各种I
  • 美国主机空间商实在太多太多了,共性的东西很多,每个空间有各有其个性的地方,经常有朋友问到有什么区别啊,空间商有什么特色啊,今天美国主机评论家
  • 距北京奥运会开幕不到一个月,奥运比赛的绝大部分赛程均已敲定。16天跌宕起伏的赛事充满了令人眼花缭乱的看点,为了方便读者找到每天比赛的重点,我
  • 为使各位站长能更方便地使用该支付功能,Discuz! 积分充值增加了财付通支付接口及方便的测试功能,您只需在后台绑定财付通商户号及密钥并进行
  • 谷歌主要的收入来自搜索广告,在图片显示广告方面还是一片“处女地”。花旗集团一分析师预计说,明年,包括Youtube在内的网络资产可以为谷歌贡
手机版 网站运营 asp之家 www.aspxhome.com