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

作者:大碗油泼 时间:2023-08-28 01:58:58 

一、搭建

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使用统一版本,每个项目的版本需要固定,便于迭代。

来源:https://www.cnblogs.com/aerospace191/p/13985654.html

标签:Docker,搭建,pypi,私有,仓库
0
投稿

猜你喜欢

  • 百度视频重金购买版权 年内预算将高达2亿元

    2010-03-07 09:22:00
  • Apache2.4.2编译安装2个常见错误和解决方法

    2023-05-10 15:40:31
  • PHPwind整合最土系统用户同步登录

    2010-12-14 14:46:00
  • Linux 检测服务器是否连接着网络

    2023-10-12 15:24:18
  • 内容优化:关键词的提示工具

    2008-03-17 13:47:00
  • 如何选择CMS?

    2008-08-10 18:23:00
  • 用Win 2003 server打造安全的个人Web服务器

    2010-04-14 18:23:00
  • VMware下Linux CentOS6.9安装图文教程

    2021-12-18 22:53:09
  • 帝国、PHPCMS及织梦对比(五):标签解析方式分析

    2011-08-26 12:55:18
  • CentOS7下实现终端输入中文设置详解

    2023-07-09 07:14:41
  • 图解什么是Web2.0

    2008-03-08 12:54:00
  • 在Ubuntu20.04中安装ROS Noetic的方法

    2023-04-19 03:46:44
  • 使用Clonezilla迁移到虚拟Linux环境

    2009-09-09 09:10:00
  • B2B电子商务网站优化中的典型问题

    2009-08-22 09:03:00
  • 论策:浅谈中小企业面临网络营销几大难题

    2009-06-16 09:01:00
  • VMware Workstation安装并安装WIN10操作系统连接外网步骤指导(超详细教程)

    2021-01-30 19:05:25
  • 提高WordPress自带搜索功能体验

    2010-03-26 11:08:00
  • 浏览器15年历史回顾

    2009-10-12 14:52:00
  • dedecms 评论盖楼实现楼层数,类似腾讯、网易的评论(5.5/5.6版)

    2010-12-08 16:12:00
  • 徐易容谈抓虾网盈利新模式和运作方法

    2008-05-07 18:50:00
  • asp之家 网站运营 m.aspxhome.com