2021年5月9日日曜日

プライベート Pypi リポジトリを構築してみた

プライベート Pypi リポジトリを構築してみた

概要

pypiserver という Python 製のツールを使うと簡単に構築できます
今回は docker で動作させます
またパッケージは過去に紹介した手順で作成したパッケージを使います

環境

  • macOS 11.2.3
  • docker 20.10.5
  • Python 3.8.7
  • pypiserver 1.4.2

.htpasswd ファイルの作成

認証は単純なベーシック認証を使います
.htpasswd ファイルを作成します

  • htpasswd -c .htpasswd hawksnowlog

パッケージディレクトリの作成

永続化するためのディレクトリを作成します
用途に合わせてコンテナボリュームなどに変更してください

  • mkdir packages

起動

作成した .htpasswd とパッケージ用のディレクトリをマウントして起動します

  • docker run -p 8080:8080 -v $(pwd)/packages:/data/packages -v $(pwd)/.htpasswd:/data/.htpasswd pypiserver/pypiserver:latest -P .htpasswd

.pypirc 編集

password に関しては .htpasswd ファイル作成時に入力したパスワードを記載してください

  • vim ~/.pypirc
[distutils]
index-servers =
    local

[local]
repository: http://localhost:8080
username: hawksnowlog
password: xxxxxxxx

動作確認

--repository オプションで先程記載した [local] を指定しましょう

  • python3 -m twine upload --repository local dist/*

http://localhost:8080/simple/ にアクセスするとアップロードしたパッケージがあるのが確認できると思います

インストールする場合は以下のように --index-url で localhost を指定します
また .htpasswd ファイルに記載したユーザ名とパスワードを含めるようにします

  • python3 -m pip install --index-url http://hawksnowlog:xxxxxxxx@localhost:8080/simple --no-deps echo-test-hawksnowlog

最後に

若干コンテナのスペックなどを調整しないとレスポンスが遅くなることがあるかもしれません

参考サイト

0 件のコメント:

コメントを投稿