经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
使用docker+devpi搭建本地pypi源的方法
来源:jb51  时间:2019/4/8 8:34:42  对本文有异议

前一段时间开发需要经常使用 pip 下载,虽然把 pip 源改成了国内源,但我对速度还是不满意,更为重要的是集成
测试环境是离线的,要在集成测试环境开发显然需要搭建自己的本地 pip 源。在使用 devpi 之前我曾使用过 pip2pi,但有个 bug 导致离线环境下的 tox 命令总是失败,所以最后采用 devpi 搭建 pip 源。这里使用 docker 部署,方便又快速,如果不小心弄崩了也只需要重新运行 docker 容器就好了。如果你的环境没有安装 docker 可以自行搜素安装方法,比如 docker 社区的文档 install docker。如果你是 Centos 用户,可以使用以下方法安装

  1. sudo yum update
  2. sudo yum -y install docker
  3. sudo systemctl enable docker
  4. sudo systemctl start docker

接下来使用使用 docker 部署一个 Python 本地镜像源,我们可以使用 docker hub 上已有的镜像,我这里选择的是
muccg/devpi 这个镜像

  1. # 设置 devpi 服务器管理员密码
  2. DEVPI_PASSWORD = 123
  3.  
  4. mkdir -p /src/docker/devpi
  5. mkdir /tmp/wheelhouse
  6.  
  7. docker run -d --name devpi --publish 3141:3141 --volume /tmp/wheelhouse:/wheelhouse
  8. --volume /srv/docker/devpi:/data --env=DEVPI_PASSWORD=$DEVPI_PASSWORD --restart always muccg/docker-devpi
  9.  

接着先在本地下载好所需的wheel包,requirements.txt文件内容即为我们需要的 Python 库列表

  1. pip wheel --wheel-dir /tmp/wheelhouse -r requirements.txt

如果从 pip 源下载的库已经是 wheel 包的话文件将会被直接放在 /tmp/wheelhouse 内,如果是
tar 包,pip 会先 build 出 wheel 包,这可能需要一些时间。下载完成后 wheelhouse 内容类似

  1. ll /tmp/wheelhouse
  2. total 524K
  3. -rwxrwxrwx 1 rookie rookie 155K Apr 6 23:40 certifi-2019.3.9-py2.py3-none-any.whl
  4. -rwxrwxrwx 1 rookie rookie 131K Apr 6 23:40 chardet-3.0.4-py2.py3-none-any.whl
  5. -rwxrwxrwx 1 rookie rookie 58K Apr 6 23:40 idna-2.8-py2.py3-none-any.whl
  6. -rwxrwxrwx 1 rookie rookie 57K Apr 6 23:40 requests-2.21.0-py2.py3-none-any.whl
  7. -rwxrwxrwx 1 rookie rookie 116K Apr 6 23:40 urllib3-1.24.1-py2.py3-none-any.whl

下载完成后如果本地环境安装了devpi客户端,可以直接上传 wheel 包,不过由于我们在创建容器时已经

wheelhouse 文件夹挂载进去,也可以在在容器里直接操作

  1. # 进入容器
  2. docker exec -it -u root devpi bash
  3.  
  4. # 登陆并上传
  5. devpi use http://<host_ip>:3141/root/public --set-cfg
  6. devpi login root 123
  7. devpi upload --from-dir /wheelhouse
  8.  

上传完成后可以使用 http://<host_ip>:3141 查看 pip 本地源服务器状态。

若要临时使用可以使用 pip install 的 --index 和 --trusted-host 选项

  1. pip install --index http://<host_ip>:3141/root/public/+simple/ --trusted-host <host_ip>

或者修改 pip.conf 文件永久使用

  1. # vim ~/.pip/pip.conf
  2. [global]
  3. index_url = http://<host_ip>:3141/root/public/+simple/
  4. trusted-host = <host_ip>
  5. [search]
  6. index = http://<host_ip>:3141/root/public/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号