如何使用Docker搭建pypi私有仓库

 更新时间:2020年11月27日 09:41:12   作者:大碗油泼  
这篇文章主要介绍了如何使用Docker搭建pypi私有仓库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、搭建

1、准备htpasswd.txt文件

该文件内容包含上传包至仓库时验证的用户名和密码

pip install htpasswd
htpasswd -sc htpasswd.txt <username>

2、启动容器

docker run --name pypiserver --restart=always -v /data/pypi/packages:/data/packages -v /root/htpasswd.txt:/data/htpasswd.txt -p 8080:8080 -d pypiserver/pypiserver -P htpasswd.txt packages
#需在宿主机上提前建立好data目录及htpasswd.txt文件

3、设置nginx反向代理

cat /usr/local/nginx/conf/exten/pypi.conf
upstream pypi {
          server 127.0.0.1:8080;
      }
 
server {
 
    listen 80;
    server_name pypi.local.me;
    location / {
          proxy_pass_header Server;
          proxy_set_header Host $http_host;
          proxy_redirect off;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Scheme $scheme;
          proxy_pass    http://pypi;
          }
}

二、使用

1、建立测试项目

# 建立项目目录
mkdir -p linode_example/linode_example
# 建立setup.py
cat linode_example/setup.py
from setuptools import setup
setup(
   name='linode_example',
   packages=['linode_example'], #上传到仓库后的目录,如http://pypi.local.me/linode_example
   description='Hello world enterprise edition',
   version='0.1', # 版本号
   url='http://github.com/example/linode_example',
   author='Linode',
   keywords=['pip','linode','example']
   )
# 该文件内容为说明性内容,可根据自己的包的情况进行设置
 
# 建立__init__.py 主程序
cat linode_example/linode_example/__init__.py
def hello_word():
   print("hello world")
 
# 打包并上传
python3.7 setup.py sdist # 打包,执行完后会在dist目录下有个tar包
twine upload --repository-url http://pypi.local.me dist/* # 上传时需要输入用户名和密码:admin/admin123

2、使用上传至仓库的包

pip install -i http://pypi.local.me --trusted-host pypi.local.me linode_example

打包注意事项:

1、所有需要打包的项目在git仓库中的目录结构必须一致,便于jenkinsfile自动化集成;

2、所有需要打包的项目的setup.py文件必须位于项目根目录下;

3、python使用统一版本,每个项目的版本需要固定,便于迭代。

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

相关文章

  • 使用Docker快速搭建你的Gitbook

    使用Docker快速搭建你的Gitbook

    这篇文章主要介绍了使用Docker快速搭建你的Gitbook的相关资料,需要的朋友可以参考下
    2023-11-11
  • Docker核心组件之联合文件系统详解

    Docker核心组件之联合文件系统详解

    这篇文章主要为大家介绍了Docker核心组件之联合文件系统详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Docker如何部署SQL Server 2017 Always On集群

    Docker如何部署SQL Server 2017 Always On集群

    这篇文章主要介绍了Docker如何部署SQL Server 2017 Always On集群问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker容器搭建运行python的深度学习环境的方法

    Docker容器搭建运行python的深度学习环境的方法

    本文主要介绍了Docker容器搭建运行python的深度学习环境的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • docker安装elastic search的详细过程

    docker安装elastic search的详细过程

    这篇文章主要介绍了docker安装elastic search的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 浅谈docker --privileged=true参数作用

    浅谈docker --privileged=true参数作用

    这篇文章主要介绍了浅谈docker --privileged=true参数作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • docker部署nexus并启用https方式

    docker部署nexus并启用https方式

    这篇文章主要介绍了docker部署nexus并启用https方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    这篇文章主要介绍了docker容器运行成功但无法访问的原因分析及对应解决方案(以Tomcat为例亲测有效),文中通过图文结合的方式介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • docker搭建CMS点播系统带播放器功能

    docker搭建CMS点播系统带播放器功能

    熟悉docker的童鞋都知道,安装是非常的便利的,也可以在线体验的,今天通过本文给大家介绍docker搭建CMS点播系统带播放器功能,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Docker安装jenkins实现微服务多模块打包的示例代码

    Docker安装jenkins实现微服务多模块打包的示例代码

    本文主要介绍了Docker安装jenkins实现微服务多模块打包的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论