Nexus配置Pypi私库

一、使用docker安装

sonatype将 nexus3做成了docker镜像,安装过程十分简单

# 容器中的进程是以uid为200的用户执行
mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data 
# 为了持久化存储,需要挂载到宿主机的某个目录
docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

二、配置仓库

安装好nexus后,访问http://your-hostname.com:8081,点击右上角登陆,默认账号为admin,默认密码存放在容器内,使用以下命令获取:

docker exec nexus cat /nexus-data/admin.password

Nextus3的仓库都有三种类型:

  • hosted:适用于存储公司内部的python包
  • proxy:可以指定一个远程的源,当nexus本地无缓存时,会去该源下载相应的包。在这里插入图片描述其中,有两个需要注意参数:
    • Maximum component age:默认为1440min (1day),表示一个组件(比如flask)的包会被缓存多久。超过该缓存时间之后,下次client对此包发起请求,则会再去远程的源拉一次(设置为**-1**表示永不失效)
    • Maximum metadata age:默认为1440min(1day),表示包的metadata信息会缓存多久。假设我们的项目依赖A,官方刚刚更新了包A的版本,我们也将项目中A的版本改为最新版本,由于metadata最大失效时间为1天,我们install的时候有可能提示找不到最新的版本。该值设为0表示每次都去请求最新的metadata-1表示只用本地缓存。
  • group:组合多个hosted/proxy/group,提供统一访问地址

分别创建上述的三个仓库,命名为pypi-repo, pypi-central, pypi-public

常用pypi源:

清华大学:https://pypi.tuna.tsinghua.edu.cn/
阿里云:http://mirrors.aliyun.com/pypi/
豆瓣(douban): http://pypi.douban.com/
官方源:https://pypi.org

三、安装python包

# 如果没用配置https,则需要加上--trusted-host
pip install flask django -i http://your-hostname.com:8081/repository/pypi-public/simple/ \ 
							--trusted-host your-hostname.com

成功安装后,nexus仓库上就会有这些包的缓存
仓库下的simple文件夹里面存放着各个包的metadata信息,这也是为什么我们在install指定-i参数的时候url是.../pypi-public/simple/

也可以全局配置pip的proxy

mkdir ~/.pip
vim ~/.pip/pip.conf

[global]
index-url = http://your-hostname.com:8081/repository/pypi-public/simple/
trusted-host =  your-hostname.com

四、上传python包

打包过程参考Packaging Python Projects

上传我们自己的包需要指定hosted仓库:

python3 -m twine upload --repository-url http://your-hostname.com:8081/repository/pypi-repo/ dist/*

username: xxx
password: xxx

按这种方式每次上传时需要填写用户名密码,如果不想每次都输入,在~/.pypirc文件下写入:

[distutils]
index-servers =
        nexus
[nexus]
repository: http://your-hostname.com:8081/repository/pypi-repo/
username: xxx
password: xxx

以后上传只需执行:

python -m twine upload -r nexus dist/*

Refs

Nexus for pipy

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值