使用docker+devpi搭建本地pypi源的方法

 更新时间:2019年04月07日 16:46:38   作者:Rookie  
这篇文章主要介绍了使用docker+devpi搭建本地pypi源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

sudo yum update
sudo yum -y install docker
sudo systemctl enable docker
sudo systemctl start docker

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

# 设置 devpi 服务器管理员密码
DEVPI_PASSWORD = 123

mkdir -p /src/docker/devpi
mkdir /tmp/wheelhouse

docker run -d --name devpi \
  --publish 3141:3141 \
  --volume /tmp/wheelhouse:/wheelhouse
  --volume /srv/docker/devpi:/data \
  --env=DEVPI_PASSWORD=$DEVPI_PASSWORD \
  --restart always \
  muccg/docker-devpi

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

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

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

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

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

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

# 进入容器
docker exec -it -u root devpi bash

# 登陆并上传
devpi use http://<host_ip>:3141/root/public --set-cfg
devpi login root 123
devpi upload --from-dir /wheelhouse

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

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

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

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

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

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

相关文章

  • Docker stop停止/remove删除所有容器

    Docker stop停止/remove删除所有容器

    这篇文章主要介绍了Docker stop停止/remove删除所有容器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解Docker如何在前端项目动态插入并使用变量

    详解Docker如何在前端项目动态插入并使用变量

    这篇文章主要为大家详细介绍如何在Docker前端镜像中设置变量以及使用变量的方法,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • 关于Dockerfile镜像制作完整实例

    关于Dockerfile镜像制作完整实例

    本文详细介绍了如何使用Docker制作镜像,并通过实际应用发版展示了制作过程,主要内容包括创建和启动Docker容器的脚本(init.sh、start.sh、stop.sh、restart.sh),以及配置目录,文章还讨论了Docker容器IP地址的作用,并总结了制作新镜像的基本步骤
    2024-11-11
  • idea链接不上虚拟机的docker里的mongodb问题及解决

    idea链接不上虚拟机的docker里的mongodb问题及解决

    这篇文章主要介绍了idea链接不上虚拟机的docker里的mongodb问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 使用GoogleContainerTools容器化jib构建docker镜像

    使用GoogleContainerTools容器化jib构建docker镜像

    这篇文章主要教大家如何使用GoogleContainerTools容器化jib构建docker镜像的实现,有需要的的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 解决Docker x509 insecure registry的问题

    解决Docker x509 insecure registry的问题

    这篇文章主要介绍了解决Docker x509 insecure registry的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker中控制服务启动顺序的操作方法

    Docker中控制服务启动顺序的操作方法

    Docker是一种开源的应用容器引擎,允许开发者将应用及其依赖打包进容器,实现快速、一致的部署,Docker三剑客compose、machine和swarm提供了不同层面的服务管理和编排,使得在不同环境中部署应用变得简单高效
    2024-10-10
  • docker在ubuntu14.04下的安装步骤

    docker在ubuntu14.04下的安装步骤

    这篇文章主要介绍了docker在ubuntu14.04下的安装步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 如何对已有docker容器增加新的端口映射详解

    如何对已有docker容器增加新的端口映射详解

    最近使用Docker作为容器部署项目的时候,发现有个问题就是容器只能在启动的时候配置预先配置端口,但是往往实际应用的过程中会发现端口不够用,下面这篇文章主要给大家介绍了关于如何对已有docker容器增加新的端口映射的相关资料,需要的朋友可以参考下
    2022-08-08
  • 启动docker的时候如何把参数传递给docker里面的项目(推荐)

    启动docker的时候如何把参数传递给docker里面的项目(推荐)

    这篇文章主要介绍了启动docker的时候如何把参数传递给docker里面的项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01

最新评论