使用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/

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

相关文章

  • 使用 kind 和 Docker 启动本地的 Kubernetes环境

    使用 kind 和 Docker 启动本地的 Kubernetes环境

    这篇文章主要介绍了使用 kind 和 Docker 启动本地的 Kubernetes环境,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • SpringBoot打包docker镜像发布的详细步骤

    SpringBoot打包docker镜像发布的详细步骤

    这篇文章主要介绍了SpringBoot打包docker镜像发布,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • docker容器使用GPU方法实现

    docker容器使用GPU方法实现

    本文主要介绍了docker容器使用GPU方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • docker-compose.yaml设置中国时区方式

    docker-compose.yaml设置中国时区方式

    这篇文章主要介绍了docker-compose.yaml设置中国时区方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker定制容器镜像的2种方法(推荐)

    Docker定制容器镜像的2种方法(推荐)

    本篇文章主要介绍了Docker定制容器镜像的2种方法(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Docker搭建Redis主从复制的实现步骤

    Docker搭建Redis主从复制的实现步骤

    本文主要介绍了Docker搭建Redis主从复制的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Docker构建镜像的两种方式实现

    Docker构建镜像的两种方式实现

    从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。本文就详细的介绍了这两种方法,感兴趣的可以了解一下
    2021-09-09
  • docker 文件存放路径, 修改端口映射操作方式

    docker 文件存放路径, 修改端口映射操作方式

    这篇文章主要介绍了docker 文件存放路径, 修改端口映射操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker 网络工作原理详解

    Docker 网络工作原理详解

    这篇文章主要介绍了Docker 网络工作原理的相关资料,这里对Docker的网络工作进行了详细介绍,需要的朋友可以参考下
    2016-11-11
  • 解决Docker中的error during connect异常情况

    解决Docker中的error during connect异常情况

    这篇文章主要介绍了解决Docker中的error during connect异常情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论