专栏首页一日一工具使用sonatype/nexus构建企业级内部pypi仓库

使用sonatype/nexus构建企业级内部pypi仓库

使用sonatype/nexus构建企业级内部pypi仓库

大家写python的时候有木有碰到过内部要共享应用或者交付给业务运维的时候,需要单独另外安排,要如何操作操作。另外一个层面也是会经常用到pip去安装各种包,那么我们是否需要搭建内部的。

什么情况下需要内部pypi仓库

•内部需要共享一些敏感的工程(不便上传到pypi仓库)•加速构建•提高效率

搭建pypi私服常见方案

•pypiserver•sonatype/nexus•jfrog Artifactory•devpi•docker-pypi•使用github实现pypi私服•PyPICloud•private-pypi

pypiserver

959 star, 一直在持续更新,支持Docker部署,特点就是轻,真的是实现了开箱即用。无web ui

pypiserver[1]

sonatype/nexus

分社区版和商业版,社区版能满足95%的市场需求,特点是可以实现基于角色的权限控制,支持当前市面上大部分语言,就算原生不支持,github上也能搜索到对应的插件。缺点很明确,就是太过于重量级了。

jfrog Artifactory

同样是分社区和商业版,不过社区版很鸡肋,功能很少,如果公司有钱可以考虑商业版,功能真的是好到爆,到什么程度呢,你可以理解为,将会有一半运维人会失业~

devpi

384 star, 也是一直在更新,该工具有三个组件构成,相对于pypiserver来说,复杂度有所上升。提供了web ui

devpi[2]

docker-pypi

103 star, 许久不更新了,比较小众,可以不用考虑。

docker-pypi[3]

使用github实现pypi私服

可以参考下这个文档,how-to-use-github-as-a-pypi-server[4]

PyPICloud

同样分为社区和商业版,同样支持docker部署,具体没有用过,感兴趣的小伙伴可以试一把。

pypicloud[5]

private-pypi

101 star, 一直在更新,但是没用过,感兴趣的小伙伴可以试一把。

private-pypi[6]

为什么选择sonatype/nexus

完善的基于角色的权限控制体系

可以对接LDAP,然后权限把控可以做到很细的颗粒度。

支持语言多

社区版的nexus支持当前业内大多数语言,为了确保内部统一入口,我们选择这个。

完善的API接口

打开http://ip:port/#admin/system/api即可浏览API接口的信息。

demo演示

nexus搭建

搭建其实挺简单,找一个大磁盘的机器,挂载存储到本地,一键启动即可。

> docker pull sonatype/nexus3


> docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

新版本的nexus默认密码不再是admin123, 密码文件存储在/nexus-data/admin.password里,所以需要获取这个临时密码用来登陆。会提示让你修改密码的,不用担心。

配置

流程

•创建一个hosted类型的仓库•创建一个proxy类型的仓库•创建一个group类型的仓库,然后把上面两个类型的仓库包含进去

上传下载

留作下节分享吧,洗洗睡了~

引用链接

[1] pypiserver: https://github.com/pypiserver/pypiserver [2] devpi: https://github.com/devpi/devpi [3] docker-pypi: https://github.com/codekoala/docker-pypi [4] how-to-use-github-as-a-pypi-server: https://www.freecodecamp.org/news/how-to-use-github-as-a-pypi-server-1c3b0d07db2/ [5] pypicloud: https://pypicloud.readthedocs.io/en/latest/index.html [6] private-pypi: https://github.com/pywharf/pywharf

本文分享自微信公众号 - 追马Linux(zhuima_k8s),作者:追马是我

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [好文分享] Roadmap to becoming a web developer in 2018

    地址: https://github.com/kamranahmedse/developer-roadmap

    追马
  • python程序打包新姿势(nuitka)

    Nuitka is a Python compiler written in Python. It's fully compatible with Python...

    追马
  • 从零打造自己的CI/CD系统|rollback注意事项​

    前面我们也说了,部署都是通过软链方式实现的,在全量发布的场景下,回滚的操作其中的一步就是把对应的软链切回上一个版本,这个相对来说复杂度没那么高。

    追马
  • [WPF自定义控件库]使用TextBlockHighlightSource强化高亮的功能,以及使用TypeConverter简化调用

    上一篇文章介绍了使用附加属性实现TextBlock的高亮功能,但也留下了问题:不能定义高亮(或者低亮)的颜色。为了解决这个问题,我创建了TextBlockHig...

    dino.c
  • 为什么43%前端开发者想学Vue.js

    根据JavaScript 2017前端库状况调查 Vue.js是开发者最想学的前端库。我在这里说明一下我为什么认为这也是和你一起通过使用Vue构建一个简单的Ap...

    笔阁
  • 008.Zabbix多图展示

    Configuration---->Screen---->Creat screen

    木二
  • 数据分析从零开始实战(二)

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本...

    叫我龙总
  • Python自动化开发学习19-Djan

    接下来,我们把Django分为视图(View)、路由系统(URL)、ORM(Model)、模板(Templates )这4块进行学习。

    py3study
  • 不同方式实现集群的可行性 && 部分不建议踩的坑

    1.System has not been booted with systemd as init system (PID 1). Can't operate.

    HaythamXu
  • Jmeter(十一) - 从入门到精通 - JMeter逻辑控制器 - 下篇(详解教程)

    Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are ...

    北京-宏哥

扫码关注云+社区

领取腾讯云代金券