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
### 使用Docker部署Nexus私服教程 #### 一、准备工作 为了顺利使用Docker部署Nexus私服,需确认已安装Docker环境。确保主机具备足够的资源分配给即将运行的Nexus容器。 #### 二、启动Nexus服务 执行如下命令来创建并启动名为`nexus3`的服务实例,此操作会下载官方镜像sonatype/nexus3,并映射端口8081至本地以便访问Web UI;同时指定内存上限为1GB,持久化存储路径设置为宿主机上的/usr/local/docker/nexus-data文件夹内[^2]。 ```bash docker run -d --name nexus3 \ -p 8081:8081 \ -v /usr/local/docker/nexus-data:/nexus-data \ -m 1024m sonatype/nexus3 ``` 对于希望采用更灵活配置方案的情况,可以考虑利用docker-compose.yml定义多服务应用的方式来进行部署。下面是一个适用于大多数场景下的yaml模板示例[^3]: ```yaml version: '3.6' services: nexus: image: sonatype/nexus3:3.68.1-java11 container_name: nexus volumes: - ./data:/nexus-data ports: - "8081:8081" restart: unless-stopped platform: linux/amd64 # 对于ARM架构设备如苹果M1系列机器而言非常重要的一项设定 environment: - TZ=Asia/Shanghai ``` 保存上述内容到任意位置的一个新文件中(比如命名为docker-compose-nexus.yml),之后在同一目录下打开终端窗口输入`docker compose -f docker-compose-nexus.yml up -d`即可完成整个过程自动化处理。 #### 三、初始化与管理 初次连接时,默认用户名密码均为admin/admin123,在浏览器地址栏键入http://localhost:8081/进入图形界面后建议立即修改默认凭证信息以保障安全性。另外值得注意的是,如果遇到无法正常加载页面的问题,则可能是防火墙阻止了外部请求或者是网络代理干扰所致,请适当调整相应策略后再试一次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值