1 简介

devpi 是一个 Python 包索引服务,可以帮助管理 Python 包的缓存、发布和安装。它可以让开发者在本地构建自己的 Python 包索引,用于组织和分享包。

2 创建镜像

Dockerfile 如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FROM python:3.9-slim

# 安装 devpi
RUN pip install devpi-server devpi-web devpi-client

# 创建数据目录
RUN mkdir /data

# 设置数据目录为工作目录
WORKDIR /data

# 暴露 devpi 端口
EXPOSE 3141

# 启动 devpi-server
CMD ["devpi-server", "--serverdir", "/data", "--host", "0.0.0.0"]

打镜像:

1
docker build -t devpi-server .

3 初始化

1
2
3
$ docker run --rm -it   --name devpi-server   -p 3141:3141   -v $(pwd)/data:/data   devpi-server bash
> devpi-init --serverdir /data/
> devpi-server --serverdir /data --host 0.0.0.0 --port 3141

4 启动服务

1
docker run --rm -d --name devpi-server -p 3141:3141 -v $(pwd)/data:/data devpi-server

此时,可通过 3134 端口访问该服务:http://localhost:3134

5 使用本地 devpi 仓库

1
pip install --index-url http://localhost:3141/root/pypi/ <package-name>

第一次安装时,安装包从远程下载到本地 devpi 仓库,后面再安装就快了。