pypi私有倉庫怎么利用Docker進行搭建?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
鼓樓網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。一、搭建
1、準備htpasswd.txt文件
該文件內(nèi)容包含上傳包至倉庫時驗證的用戶名和密碼
pip install htpasswd
htpasswd -sc htpasswd.txt
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、設(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、建立測試項目
# 建立項目目錄 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'] ) # 該文件內(nèi)容為說明性內(nèi)容,可根據(jù)自己的包的情況進行設(shè)置 # 建立__init__.py 主程序 cat linode_example/linode_example/__init__.py def hello_word(): print("hello world") # 打包并上傳 python3.7 setup.py sdist # 打包,執(zhí)行完后會在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倉庫中的目錄結(jié)構(gòu)必須一致,便于jenkinsfile自動化集成;
2、所有需要打包的項目的setup.py文件必須位于項目根目錄下;
3、python使用統(tǒng)一版本,每個項目的版本需要固定,便于迭代。
看完上述內(nèi)容,你們掌握pypi私有倉庫怎么利用Docker進行搭建的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!