如何使用Docker搭建pypi私有倉(cāng)庫(kù)
一、搭建
1、準(zhǔn)備htpasswd.txt文件
該文件內(nèi)容包含上傳包至倉(cāng)庫(kù)時(shí)驗(yàn)證的用戶(hù)名和密碼
pip install htpasswd
htpasswd -sc htpasswd.txt <username>
2、啟動(dòng)容器
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
#需在宿主機(jī)上提前建立好data目錄及htpasswd.txt文件
3、設(shè)置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、建立測(cè)試項(xiàng)目
# 建立項(xiàng)目目錄
mkdir -p linode_example/linode_example
# 建立setup.py
cat linode_example/setup.py
from setuptools import setup
setup(
name='linode_example',
packages=['linode_example'], #上傳到倉(cāng)庫(kù)后的目錄,如http://pypi.local.me/linode_example
description='Hello world enterprise edition',
version='0.1', # 版本號(hào)
url='http://github.com/example/linode_example',
author='Linode',
keywords=['pip','linode','example']
)
# 該文件內(nèi)容為說(shuō)明性?xún)?nèi)容,可根據(jù)自己的包的情況進(jìn)行設(shè)置
# 建立__init__.py 主程序
cat linode_example/linode_example/__init__.py
def hello_word():
print("hello world")
# 打包并上傳
python3.7 setup.py sdist # 打包,執(zhí)行完后會(huì)在dist目錄下有個(gè)tar包
twine upload --repository-url http://pypi.local.me dist/* # 上傳時(shí)需要輸入用戶(hù)名和密碼:admin/admin123
2、使用上傳至倉(cāng)庫(kù)的包
pip install -i http://pypi.local.me --trusted-host pypi.local.me linode_example
打包注意事項(xiàng):
1、所有需要打包的項(xiàng)目在git倉(cāng)庫(kù)中的目錄結(jié)構(gòu)必須一致,便于jenkinsfile自動(dòng)化集成;
2、所有需要打包的項(xiàng)目的setup.py文件必須位于項(xiàng)目根目錄下;
3、python使用統(tǒng)一版本,每個(gè)項(xiàng)目的版本需要固定,便于迭代。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 從零搭建docker私有倉(cāng)庫(kù)的步驟
- docker私有倉(cāng)庫(kù)的搭建和使用詳解
- 搭建Docker私有倉(cāng)庫(kù)(自簽名方式)
- 詳解docker私有倉(cāng)庫(kù)搭建與使用實(shí)戰(zhàn)
- Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn)
- docker私有倉(cāng)庫(kù)harbor搭建過(guò)程
- Docker搭建私有倉(cāng)庫(kù)之Harbor的步驟
- Harbor搭建Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)方法
- 如何搭建配置Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
- Docker容器搭建本地私有倉(cāng)庫(kù)詳情
- 一文教會(huì)你如何高效地搭建Docker私有倉(cāng)庫(kù)
- docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
相關(guān)文章
詳解使用export/import導(dǎo)出和導(dǎo)入docker容器
本篇文章主要介紹了詳解使用export/import導(dǎo)出和導(dǎo)入docker容器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
docker的overlay2中存的都是什么及如何清理/var/lib/docker/overlay2
docke roverlay2是Docker中的存儲(chǔ)驅(qū)動(dòng)之一,用于管理鏡像和容器層的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于docker的overlay2中存的都是什么及如何清理/var/lib/docker/overlay2的相關(guān)資料,需要的朋友可以參考下2024-04-04
Docker鏡像下載的常見(jiàn)問(wèn)題及解決辦法
在使用Docker時(shí),用戶(hù)常遇到下載鏡像錯(cuò)誤,如TLS握手超時(shí)、請(qǐng)求取消等,主要由網(wǎng)絡(luò)狀況、配置問(wèn)題或DockerHub服務(wù)導(dǎo)致,本文就來(lái)介紹了一下幾種解決方法,感興趣的可以了解一下2024-10-10

