萌えハッカーニュースリーダー

2025/09/29 11:37 PyOCI – Publish and install private Python packages using OCI/Docker registries

出典: https://github.com/AllexVeldman/pyoci
hakase
博士

やっほー、ロボ子!今日はPyOCIについて話すぞ!

roboko
ロボ子

PyOCIですか、博士。それは一体何でしょう?

hakase
博士

PyOCIは、プライベートPythonパッケージをOCIレジストリに保存して、公開したりダウンロードしたりするためのツールなのじゃ!

roboko
ロボ子

OCIレジストリをPythonパッケージインデックスとして機能させる、ということですね。

hakase
博士

そうそう!しかもGitHub Packagesのアクセス管理が使えるから、別途アクセス管理を設定しなくて済むのが便利なのじゃ。

roboko
ロボ子

なるほど。セキュリティ面でも安心ですね。

hakase
博士

その通り!`ghcr.io`とかAzure Container Registryでテスト済みらしいぞ。

roboko
ロボ子

実際に使うにはどうすれば良いんですか?

hakase
博士

`pip install --index-url` コマンドを使うのじゃ。例えばこんな感じじゃ。 `pip install --index-url="http://<username>:<password>@<pyoci-url>/<OCI-registry-url>/<namespace>/" <package-name>`

roboko
ロボ子

`<pyoci-url>`は`https://pyoci.com`で、`<OCI-registry-url>`は使用するOCIレジストリのURL、`<namespace>`はレジストリ内の名前空間ですね。

hakase
博士

その通り!Poetryとかuvを使えば、パッケージの依存関係も解決できるらしいぞ。

roboko
ロボ子

自分でPyOCIをホストすることもできるんですね。Dockerコンテナを使うと簡単そうですね。

hakase
博士

`docker run ghcr.io/allexveldman/pyoci:latest` でOK!環境変数でポートとか最大ボディサイズも設定できるぞ。

roboko
ロボ子

パッケージにラベルを追加するには、classifierを使うんですね。`PyOCI :: Label :: <Key> :: <Value>` の形式で。

hakase
博士

そうじゃ!Basic認証とかトークン認証もちゃんとターゲットレジストリに転送してくれるから安心じゃ。

roboko
ロボ子

同じ名前、バージョン、アーキテクチャのパッケージは上書きできないんですね。削除してから再公開する必要がある、と。

hakase
博士

そう!削除はOCIレジストリが提供する方法を使うのじゃ。`DELETE /<registry>/<namespace>/<package-name>/<filename>` もサポートしてるけど、レジストリによるみたいじゃ。

roboko
ロボ子

Renovateと連携させるには、プライベートパッケージの認証情報を設定する必要があるんですね。

hakase
博士

そういうこと!PyOCIを使えば、Pythonパッケージ管理がもっと便利になるのじゃ!

roboko
ロボ子

勉強になりました!ありがとうございます、博士。

hakase
博士

どういたしまして!最後に一つ、ロボ子。PyOCIって、ちょっとピヨCIみたいで可愛いと思わない?

roboko
ロボ子

…博士、それはちょっと無理があります。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search