Docker を使用して pypi プライベート リポジトリを構築する方法

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設

1. htpasswd.txtファイルを準備する

ファイルには、パッケージを倉庫にアップロードするときに確認するためのユーザー名とパスワードが含まれています。

pip インストール 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 パッケージ
#事前にホスト上にデータディレクトリとhtpasswd.txtファイルを作成する必要があります

3. nginxリバースプロキシを設定する

/usr/local/nginx/conf/exten/pypi.conf を編集します。
アップストリーム pypi {
          サーバー 127.0.0.1:8080;
      }
 
サーバー{
 
    聞く 80;
    サーバー名 pypi.local.me;
    位置 / {
          proxy_pass_header サーバー;
          proxy_set_header ホスト $http_host;
          proxy_redirect オフ;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Xスキーム $scheme;
          proxy_pass http://pypi;
          }
}

2. 使用

1. テストプロジェクトを作成する

# プロジェクトディレクトリを作成する mkdir -p linode_example/linode_example
# setup.py を作成する
linode_example/setup.py を cat します。
setuptoolsからsetupをインポート
設定(
   名前='linode_example',
   packages=['linode_example'], # ウェアハウスにアップロードした後のディレクトリ、例: http://pypi.local.me/linode_example
   説明 = 'Hello world エンタープライズエディション',
   version='0.1', # バージョン番号 url='http://github.com/example/linode_example',
   著者='Linode',
   キーワード=['pip','linode','例']
   )
# このファイルの内容は説明目的のみです。自分のパッケージに合わせて設定してください。 # __init__.py メインプログラムを作成します cat linode_example/linode_example/__init__.py
hello_word()を定義します:
   印刷("こんにちは世界")
 
#パッケージ化してアップロード python3.7 setup.py sdist #パッケージ化。実行後、dist ディレクトリに tarball が作成されます twine upload --repository-url http://pypi.local.me dist/* #アップロード時にはユーザー名とパスワードが必要です: admin/admin123

2. 倉庫にアップロードされたパッケージを使用する

pip インストール -i http://pypi.local.me --trusted-host pypi.local.me linode_example

梱包に関する注意事項:

1. Git リポジトリにパッケージ化する必要があるすべてのプロジェクトのディレクトリ構造は、Jenkinsfile の自動統合を容易にするために一貫している必要があります。

2. パッケージ化する必要があるすべてのプロジェクトの setup.py ファイルは、プロジェクトのルート ディレクトリに配置する必要があります。

3. Python は統合バージョンを使用するため、反復を容易にするために各プロジェクトのバージョンを固定する必要があります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerレジストリプライベートウェアハウスの構築プロセス
  • docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル
  • Docker-compose は Docker プライベート ウェアハウスのステップを迅速に構築します
  • Dockerがプライベート倉庫Harborを構築する手順
  • Dockerがプライベート倉庫を設立するプロセス

<<:  Element-UIの10の驚くべきトリックのまとめ

>>:  Q&A: XML と HTML の違い

推薦する

HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。

HTML と XHTML の違い1. XHTML要素は正しくネストされている必要がある2. XHT...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...

Vue3 で状態管理を実装するために provide を使用する方法

目次序文provide/inject を通じて Vuex 関数を実装する方法このプラグインをアプリケ...

WeChatアプレットはシンプルな計算機を実装する

参考までにWeChatアプレットで書かれた簡単な計算機です。具体的な内容は次のとおりです。 jisa...

独自のネイティブ JavaScript ルーターを作成する方法

目次序文導入JavaScript 履歴 API独自のネイティブJSルーティングを実装するHistor...

geoip を使用して nginx で地域を制限する方法

このブログは仕事のメモです環境: nginx バージョン: nginx/1.14.0 Centos ...

Docker Consul コンテナ サービスの更新と見つかった問題の概要

目次1. コンテナサービスの更新とDockerコンサルの検出1. サービス登録と検出とは何ですか? ...

MySQL 8.0 で列を素早く追加する方法

序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...

vue3+TypeScript+vue-routerの使い方

目次使いやすいプロジェクトを作成するvue-cli 作成ヴィートクリエイションvue-routerを...

Ubuntu 14 に Nginx-RTMP ストリーミング サーバーをインストールするチュートリアル

1. RTMP RTMP ストリーミング プロトコルは、Adobe が開発したリアルタイムのオーディ...

MySQL メモリテーブルと一時テーブルの使用方法の詳細な説明

MySQL メモリ テーブルと一時テーブルの使用メモリテーブル: セッション 1 $ mysql -...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

mysql 5.7.23 winx64 解凍バージョンのインストールチュートリアル

参考までに、mysql-5.7.23-winx64 解凍版の詳細なインストールチュートリアルです。具...

W3C が推奨するモバイル Web マークアップ言語 XHTML Basic 1.1

W3C は最近、「 XHTML Basic1.1 」と「 Mobile Web Best Prac...