docker镜像内安装python包(如何使用Docker搭建pypi私有仓库)
类别:服务器 浏览量:568
时间:2021-11-08 16:31:04 docker镜像内安装python包
如何使用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进入容器内部后的命令(Docker部署Consul配置过程解析)
- dockerfile配置参数(dockerfile中ENTRYPOINT与CMD的结合使用及区别)
- 更改docker容器的ip地址(docker容器通过ping直接运行获取公网IP操作)
- docker内可执行程序位置(docker exec执行多个命令的操作)
- docker镜像配置的挂载路径(docker挂载本地目录和数据卷容器操作)
- docker进入容器的方法(在docker容器中安装vi命令的简单操作)
- centosdocker安装教程(centos下docker安装及springboot远程发布docker的方法)
- docker只有localhost可用(浅谈Docker如何自定义host文件)
- 日常操作docker命令(Docker常用命令详解)
- dockermysql配置详解(Docker 部署Mysql 服务和Redis 服务的方法)
- docker10个小技巧(docker比赛提交常用命令小结)
- dockerfile镜像案例(Dockerfile构建自定义镜像的实现)
- docker查看某个容器状态(docker 移除掉运行不正常的container操作)
- docker构建本地镜像(Docker创建本地镜像实现方法解析)
- dockernginx怎么设置容器(docker nginx + https 子域名配置详细教程)
- docker指定容器id(Docker批量容器编排的实现)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
热门推荐
- 香港云服务器购买平台(游戏企业选择香港云服务器的理由)
- html基本标签大全(HTML中meta标签及Keywords)
- shell多台机器配置文件比对(如何使用shell在多服务器上批量操作)
- php的流程控制语句(PHP基于swoole多进程操作示例)
- PowerDesigner逆向生成pdm
- 宝塔面板防火墙是自动开的吗(宝塔面板开启隐藏的 waf 防火墙的方法)
- sqlserver管理工具远程连接(MSSQLSERVER不同版本设置开启远程连接sa配置)
- 织梦dedecms教程(DedeTag Engine Create File False 提示的种种原因及解决方法小结)
- parseInt()和parseFloat()
- mysql url连接参数配置(浅谈Mysql连接数据库时host和user的匹配规则)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9