基于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使用统一版本,每个项目的版本需要固定,便于迭代。
参考资料:
pypiserver搭建参考文档
如何制作python第三方包
基于Docker搭建pypi私有仓库的更多相关文章
- docker 搭建本地私有仓库
1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p : registry: 这将 ...
- Docker学习笔记六:Docker搭建企业级私有仓库
前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共 ...
- 使用verdaccio+docker搭建npm私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习 前置条件 一台电脑 可以联网 一.安装d ...
- Docker搭建本地私有仓库
安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...
- 基于IP的docker private registry 私有仓库的搭建
鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...
- 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库
本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...
- docker使用registry搭建本地私有仓库
参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时 ...
- Docker容器之搭建本地私有仓库
Docker容器之搭建本地私有仓库 本地私有仓库搭建的具体步骤 首先下载 registry 镜像 docker pull registry 在 daemon.json 文件中添加私有镜像仓库的地址并重 ...
- docker 基础之私有仓库
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库.安装运行 docker-registry容器 在安装了 Docker 后,可以通过获取官方 registry 镜像来运行. ...
随机推荐
- 栈的C++实现
数据结构c++实现系列第一篇. 话不多说,直接上代码. sichstack.h (头文件) 1 #pragma once 2 #include<string> 3 4 namespace ...
- Java学习的第二十天
1.类是单继承的,类是多继承的.. 接口只能继承接口 标识接口没有任何的属性和方法 2.今天没有问题 3.明天学习综合实例和第八章开头部分
- Bucardo使用文档-lottu
官网地址 一.Bucardo介绍 Bucardo 是基于表复制的系统 Bucardo 可以实现PostgreSQL数据库的双master/多master的方案 Bucardo的核心是一个Perl守护进 ...
- 解决pl/sql developer中数据库插入数据乱码问题
最近学习SSM项目开发,用到oracle数据库, 使用管理软件PL/sql developer往数据库表中插入数据时记录乱码. 结果如下: 可以看到中文数据都乱码成了???????问号, 看了网上各 ...
- JavaMail 发送邮件出现 Connection reset 问题
问题描述 使用 java mail 发送邮件的时候,申请的 163 邮箱作为发件箱,然无论如何配置,均出现 Connection reset,无法正常发送邮件. Exception in thread ...
- XJOI 夏令营501-511NOIP训练14 砍树(2)
小A是小B家的园丁.小B的家里有n棵树,第i棵树的横坐标为i.一天,小B交给小A一个任务,让他降低自己家中的某些树木的高度.这个任务对小A来说十分简单,因为他有一把极其锋利的斧头和一门独门砍树秘籍,能 ...
- 深入IOC及其启动原理
IOC总结 1. IOC概述 三个问题: IOC是什么 为什么用它 怎么用 1.1 是什么? 两个概念:控制反转,依赖注入 来看一下传统的干活方式:在对象单一职责原则的基础上,一个对象很少有不依赖其他 ...
- 直播平台搭建之音视频开发:认识主流视频编码技术H.264
H.264简介 什么是H.264?H.264是一种高性能的视频编解码技术.目前国际上制定视频编解码技术的组织有两个,一个是"国际电联",它制定的标准有H.261.H.263.H.2 ...
- svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方案
今天SVN提交代码遇到"Previous operation has not finished; run 'cleanup' if it was interrupted"报错,&q ...
- Python_环境搭建_jupyterNotebook的使用
# @ Author : Collin_PXY # 虚拟环境的创建及Jupyter Notebook的基本使用 # Anaconda 和 Jupter Notebook的使用: # 首先得需要安装 A ...