Docker安装pypiserver私服

Docker安装pypiserver私服

1 简介

Python开源包管理工具有pypiserver、devpi和Nexus等,pypiserver安装部署比较简单,性能也不错。

搭建pypiserver私服,可以自己构建镜像,也可以使用官网的docker镜像。

# Github地址
https://github.com/pypiserver/pypiserver

2 安装

使用docker安装pypiserver

# 下载包
docker pull pypiserver/pypiserver:v2.3.2

使用docker安装镜像

pypiserver支持使用.htpasswd设置用户名和密码。在目录中/home/pypiserver/创建密钥文件

# Ubuntu上安装htpasswd的依赖包
sudo apt-get install apache2 apache2-utils# 生成密码文件,root是用户名(可根据需求自己设定),之后输入密码即可
htpasswd -sc /home/pypiserver/.htpasswd root# 返回值如下
New password: 
Re-type new password: 
Adding password for user root

创建容器

docker run -itd \
--restart always \
--name pypiserver \
-p 8080:8080 \
-v /home/pypiserver/.htpasswd:/data/.htpasswd \
-v /home/pypiserver/packages:/data/packages \
pypiserver/pypiserver:v2.3.2 run -P .htpasswd packages

访问地址

# 系统地址
http://192.168.108.146:8080/# 软件包列表
http://192.168.108.146:8080/simple/

在这里插入图片描述
在这里插入图片描述

3 下载第三方包

单个下载numpy第三方包,建议不要再容器内下载包(会在下载.tar.gz时报错),推荐在宿主机的虚拟环境中下载。

# 进入容器
docker exec -it pypiserver /bin/bash# 指定下载目录packages
pip download numpy -d ./packages --no-cache-dir# 指定第三方源,可以加快下载
pip download numpy -d ./packages -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir

批量下载第三方包

pip download -r requirements.txt -d ./packages

4 使用twine上传自定义包

在Python环境中安装twine

pip install twine

上传自定义包

注意:dist目录中是打包后的tar.gz或者whl文件,

# 上传依赖包
twine upload --repository-url http://192.168.108.146:8080/ dist/*.tar.gz
twine upload --repository-url http://192.168.108.146:8080/ dist/*.whl# 返回值
twine upload --repository-url http://192.168.108.146:8080/ ./*.whl
Uploading distributions to http://192.168.108.146:8080/
Enter your username: root
Enter your password:
Uploading numpy-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
100% ---------------------------------------- 18.2/18.2 MB • 00:00 • 174.0 MB/s
# 上传tar.gz
twine upload --repository-url http://localhost:8080 dist/numpy-2.2.2-cp310-cp310-musllinux_1_2_x86_64.tar.gz# 上传.whl
twine upload --repository-url http://localhost:8080 dist/numpy-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl

5 使用依赖包

安装私有依赖包numpy。

# 注意不能单独使用-i, --index-url安装,尽量添加--trusted-host参数
pip install -i http://192.168.108.146:8080/simple/ --extra-index-url http://192.168.108.146:8080/simple/ --trusted-host 192.168.108.146 numpy# 查看numpy
pip search --index http://192.168.108.146:8080 numpy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[ Spring ] Integrate Spring Boot Service Monitor Prometheus and Grafana

文章目录 Install Prometheus ServerInstall Grafana ServerSpring Prometheus ProjectSpring Prometheus PropertiesSpring Prometheus ApplicationSpring Prometheus ConfigurationSpring Prometheus ControllerConfigure Grafana Dash Board Install Prometheus Server # d…

“现代C++ RAII库:设计、优化及实战应用“

文章目录 代码 示例raii 类的使用示例代码:解释: raii_var 类的使用示例代码:解释: 结合线程使用示例代码:解释: make_raii 函数签名:示例:解释: raii_bind_var 函数签名…

代码随想录day06

242.有效的字母异位词 刚学哈希表想着使用unordered_set来实现,结果无法通过,原因是对字母异位词理解有问题,字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。对字母出现的次数有要求&am…

Java_双列集合

双列集合特点 存放的是键值对对象(Entry) Map 因为都是继承Map,所以要学会这些API,后面的类就都知道了 put 有两个操作,添加(并返回null)或者覆盖(返回被覆盖的值&#xff09…

MHTML文件如何在前端页面展示

MHTML文件如何在前端页面展示 需求背景: 目前在给证券公司做项目,但是在使用新系统的过程中,甲方还希望之前之前系统的历史记录可以看到。 最初制定的计划是项目组里面做数据的把原系统页面爬取下来,转成图片,直接给…

解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException

解决Spring Boot中MySQL数据库报错“Bad SQL Grammar”的问题 目录 解决Spring Boot中MySQL数据库报错“Bad SQL Grammar”的问题 问题描述解决步骤解决方案结论附:MySql常用配置参数及使用场景 在使用Spring Boot连接MySQL数据库时,有时候会遇到“B…

【AI日记】25.02.08

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 探索 AI 应用探索周二有个面试,明后天打算好好准备一下,我打算主要研究下 AI 如何在该行业赋能和应用,以及该行业未来的发展前景和公司痛点&#…

【AI学习】关于 DeepSeek-R1的几个流程图

遇见关于DeepSeek-R1的几个流程图,清晰易懂形象直观,记录于此。 流程图一 来自文章《Understanding Reasoning LLMs》, 文章链接:https://magazine.sebastianraschka.com/p/understanding-reasoning-llms?continueFlagaf07b1a0…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面(可选)5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同,对硬件资源的要求也不尽相同。…

索引失效的场景

chatGpt 7. 使用 DISTINCT 或 GROUP BY 当查询中涉及 DISTINCT 或 GROUP BY 时,如果查询没有合适的索引支持,可能会导致性能问题,虽然不完全是索引失效,但会影响查询效率。 sql SELECT DISTINCT department_id FROM employees;…

Node.js中http模块(二)

一、http模块 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer0) 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。 二、域名和域名服务器 尽管 I…

Dockerfile 文件详解

在平常的开发工作中,我们经常需要部署项目,一个项目开发完成后,使用 Docker 方式部署,那么首先得构造镜像,构造镜像最主要的就是 Dockerfile 文件的编写,今天简单来总结下 Dockerfile 文件的编写以及有哪些…

Git提交错误解决:missing Change-Id in message footer

问题现象: 提交的commit中没有插入change id导致push代码失败。 问题解决: 针对该错误,Git已经给出了解决方案: 1、to automatically insert a Change-Id, install the hook: gitdir$(git rev-parse --git-dir); scp -p -P 2…

第四十一章:沪上逐梦:适应新环境的挑战

2022 年底,凛冽的寒风裹挟着岁末的清冷,毫无保留地席卷了整个华夏大地。上海,这座屹立在东方的繁华都市,在这冰寒彻骨的冬日里,愈发显得冷峻而深沉。小冷怀揣着对新工作的满心期待,以及对未来的无限憧憬&am…

多租户架构设计与实现:基于 PostgreSQL 和 Node.js

多租户架构设计与实现:基于 PostgreSQL 和 Node.js 引言 多租户架构(Multi-tenancy)是现代 SaaS(Software as a Service)应用的核心设计模式之一。它允许多个租户共享同一套应用实例,同时确保数据隔离和安全性。本文将详细介绍多租户架构的设计方案,并基于 PostgreSQL…

顺丰java面试题_顺丰java开发面试分享,顺丰java面试经面试题

今天要给大家分享的是一个小伙伴的顺丰java开发面试过程,其中包括了面试流程,面试题目,和回答,感兴趣的朋友可以来了解一下哈。 一、面试流程 是中午进行的面试,首先是做自我介绍,之后就是讲一下项目&…

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行,会出现老化、疲劳、磨损等 问题,为了避免意外停机造成损失,需要加装一些健康监测设备,监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡(下图 1)对…

SpringBoot教程(十四) SpringBoot之集成Redis

SpringBoot教程(十四) | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 (举例讲解)2.4 项目中使用之工具类封装 (正式用这个)2.5 序列化 &…

多智能体协作架构模式:驱动传统公司向AI智能公司转型

前言 在数字化浪潮的席卷下,传统公司的运营模式正面临着前所未有的挑战。随着市场竞争的日益激烈,客户需求的快速变化以及业务复杂度的不断攀升,传统公司在缺乏 AI 技术支撑的情况下,暴露出诸多痛点。在决策层面,由于…

rBits.exe服务备份

Program.cs using System; using System.Collections.Generic; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading.Tasks;namespace rBits {internal static class Program{/// <summary>/// 应用程序的主入口点。/// </s…