Docker安装pypiserver私服

news/2025/2/8 16:54:17 标签: docker, 容器, 运维

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.niftyadmin.cn/n/5845115.html

相关文章

Docker在安装时遇到的问题(第一部分)

一、在用docker-config-manager安装yum源时出现错误 [rootlocalhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 已加载插件:fastestmirror, langpacks adding repo from: https://download.docker.com/linux/ce…

IEEE 802.3/802.2 | LLC / SNAP

注:本文为 “IEEE 802.3/802.2 | LLC / SNAP” 相关文章合辑。 未整理去重。 第三篇部分内容出自第二篇。 802.2 协议 haoay321 2010-01-28 20:52:02 LLC 协议 LLC(Logic Link Control,逻辑链路控制)是 IEEE 802.2 协议中规定…

Milvus 存储设计揭秘:从数据写入到 Segment 管理的全链路解析

作为一款云原生向量数据库,Milvus 的高效查询性能有赖于其独特的存储架构设计。然而,在实际使用过程中,许多社区用户常常会遇到以下问题: 为什么频繁调用 flush 后,查询速度会变慢? 数据删除后,…

音频文件格式——AAC、OGG和FLAC

3.AAC文件格式 3.1 封装格式解析 高级音频编码 (Advanced Audio Coding) 是一种用于有损数字音频压缩的音频编码标准。它被设计为 MP3 格式的继承者,在相同比特率下通常可以获得比 MP3 更高的音质。AAC有两种封装格式: ADIF&am…

免费windows pdf编辑工具Epdf

Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …

Synchronized和ReentrantLock面试详解

前言 接下来为大家带来的是 Java 中的两个典型锁代表:Synchronized 和 ReentrantLock 的详解 面试题:谈一谈AQS 在说 ReentrantLock 时,有必要先了解一下 AQS,因为 ReentrantLock 就是基于 AQS 实现的 分析: 共享…

赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索

hello~朋友们!好久不见! 今天给大家带来赛博算命第三期——梅花易数的java实现 赛博算命系列文章: 周易六十四卦 掐指一算——小六壬 更多优质文章:个人主页 JAVA系列:JAVA 大佬们互三哦~互三必回!&#xf…

面试笔记-基础篇

什么是面向对象? 面向对象是一种编程思想,它将数据(属性)和操作数据的行为(方法)组合成一个独立个体(对象),并通过这个个体来实现程序的设计与编写。 面向对象有三大特性,封装、继承、多态。 封装: 封装是把对象的属性私有化,同…