Docker 搭建 PyPI 服务器¶
运行 pypi-server 容器¶
使用镜像 codekoala/pypi 启动 pypi-server 服务器,docker-compose 如下:
version: '3'
services:
pypi:
image: codekoala/pypi
volumes:
- $PWD:/srv/pypi
container_name: pypi
ports:
- 9527:80
使用如下命令启动:
$ docker-compose up -d
添加用户¶
使用 htpasswd
添加用户:
$ htpasswd -c -s /htpasswd ${username}
两次输入密码后创建用户成功。
此时已经可以访问服务器:http://${your-IP}:9527
。注意要把 IP 换成自己的服务器 IP。
Tip
如果在 CentOS7 下没有 htpasswd
,则需要使用 sudo yum install httpd-tools
进行安装。
使用方法¶
上传 package¶
配置 ~/.pypirc
,为了不用每次上传输入账号密码和仓库 URL。格式如下:
[distutils]
index-servers =
pypi
pypitest
internal
[pypi]
username: xxxxx
password: xxxxx
[pypitest]
repository: https://test.pypi.org/legacy/
username: xxxxx
password: xxxxx
[internal]
repository: http://${your-IP}:9527
username: xxxxx
password: xxxxx
使用 twine 上传
$ twine upload dist/* -r internal
使用仓库安装 package¶
$ pip install ${package-name} -i http://${your-IP}:9527 --trusted-host ${your-IP}
因为是 HTTP 连接,所以需要选项 --trusted-host
。