溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pypi私有倉(cāng)庫(kù)怎么利用Docker進(jìn)行搭建

發(fā)布時(shí)間:2020-11-30 16:15:20 來(lái)源:億速云 閱讀:287 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

pypi私有倉(cāng)庫(kù)怎么利用Docker進(jìn)行搭建?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

一、搭建

1、準(zhǔn)備htpasswd.txt文件

該文件內(nèi)容包含上傳包至倉(cāng)庫(kù)時(shí)驗(yàn)證的用戶名和密碼

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ō)明性內(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í)需要輸入用戶名和密碼: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)目的版本需要固定,便于迭代。

看完上述內(nèi)容,你們掌握pypi私有倉(cāng)庫(kù)怎么利用Docker進(jìn)行搭建的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI