GitLabパッケージレジストリ
GitLabパッケージを利用することで、GitLabを様々なパッケージマネージャのプライベートリポジトリとして利用できます。ユーザーはパッケージをビルドして公開でき、下流のプロジェクトで依存関係として簡単に利用できます。
Packages機能では、GitLabを以下のリポジトリとして機能させることができます:
リポジトリ | 説明 | GitLabバージョンで利用可能 |
---|---|---|
コンテナレジストリ | コンテナレジストリを利用することで、すべてのプロジェクトがDockerイメージを保存するためのスペースを持つことができます。 | 8.8+ |
依存プロキシ | 依存関係プロキシは、頻繁に利用される上流のイメージ/パッケージのローカルプロキシを設定します。 | 11.11+ |
リポジトリ | Conanリポジトリを利用することで、すべてのプロジェクトがConanパッケージを保存するためのスペースを持つことができます。 | 12.6+ |
Mavenリポジトリ | Mavenリポジトリは、すべてのプロジェクトがMavenパッケージを保存するためのスペースを持つことができます。 | 11.3+ |
npmレジストリ | NPMレジストリを使用すると、すべてのプロジェクトが NPM パッケージを保存するためのスペースを持つことができます。 | 11.7+ |
NuGetリポジトリ | GitLab NuGetリポジトリは、GitLabのすべてのプロジェクトがNuGetパッケージを保存する独自のスペースを持つことを可能にします。 | 12.8+ |
PyPiリポジトリ | GitLab PyPiリポジトリは、GitLabのすべてのプロジェクトがPyPiパッケージを保存するための独自のスペースを持つことを可能にします。 | 12.10+ |
プロキシ | GitLab用のGoプロキシは、GitLabのすべてのプロジェクトをGoプロキシプロトコルで取得できるようにします。 | 13.1+ |
Composer リポジトリ | GitLab Composerリポジトリは、GitLabのすべてのプロジェクトがComposerパッケージを保存するための独自のスペースを持つことを可能にします。 | 13.2+ |
プロジェクトのパッケージレジストリを有効にします。
プロジェクトのサイドバーに Packages & Registries > Package Registryの項目が見つからない場合は、以下を確認してください:
- GitLab パッケージレジストリが管理者によって有効化されていること(このドキュメントに従ってください)。
- パッケージレジストリがプロジェクトで有効になりました。
管理者が GitLab インスタンスの GitLab パッケージレジストリを有効にしたら、プロジェクトのパッケージレジストリを有効にします:
- プロジェクトの「設定」>「一般」ページを開きます。
- 可視性、プロジェクト機能、権限セクションを展開し、プロジェクトでパッケージ機能を有効にします。
- 変更を有効にするには、[Save changes]を押してください。 これでサイドバーに[Packages & Registries] > [Package Registry]リンクが表示されるはずです。
プロジェクトのパッケージを見る
プロジェクトの{パッケージ} パッケージとレジストリ > パッケージレジストリに移動すると、プロジェクトに追加されたパッケージの一覧が表示されます。
このページでは、以下のことができます:
- プロジェクトにアップロードされたすべてのパッケージを表示します。
- パッケージリストを作成日、バージョン、名前でソートします。
- パッケージ名でリストをフィルタリングします。
- 特定のタイプのパッケージを表示するようにタブを変更します。
- パッケージを削除します(適切な権限がある場合)。
- 特定のパッケージの詳細ページに移動します。
グループ向けパッケージを見る
グループのサイドバーから{パッケージとレジストリ }パッケージレジストリと進むと、グループに属するすべてのパッケージを見ることができます。
このページでは、以下のことができます:
- 各グループのプロジェクトにアップロードされたすべてのパッケージを表示します。
- パッケージリストを作成日、バージョン、名前、プロジェクトでソートします。
- パッケージ名でリストをフィルタリングします。
- 特定のタイプのパッケージを表示するようにタブを変更します。
- 特定のパッケージの詳細ページに移動します。
その他のパッケージ情報を見る
その他のパッケージ情報は、プロジェクトまたはグループリストからパッケージ詳細ページに移動することで確認できます。
このページでは、以下のことができます:
- メタデータを含む拡張パッケージ情報をご覧ください。 これは各パッケージタイプに固有で、タイプによって異なる情報が表示されます。
- クイックインストールとレジストリセットアップの手順を表示します。 これらはパッケージレジストリをすでにセットアップしており、クイックインストールの手順を知りたいユーザーのためのショートカットです。
- パッケージがいつ、どのように公開されたかを含む、パッケージのアクティビティを表示します。
- パッケージの中身を見たり、ダウンロードしたりできます。 マネージャーを使ってパッケージをインストールする以外に、ファイルを個別にダウンロードすることもできます。
- パッケージを削除します(適切な権限がある場合)。
GitLab CI/CDによるパッケージのビルド
サポートされているパッケージのいくつかは、CI_JOB_TOKEN
を使ってGitLab CI/CD経由でビルドすることができます。 この方法でパッケージがビルドされると、拡張アクティビティ情報がパッケージの詳細ページに表示されます:
どのパイプラインがパッケージを公開したか、コミットやトリガーしたユーザーを確認できます。 パッケージの種類が CI/CD 経由でのビルドをサポートしているかどうかは、パッケージの種類に応じたドキュメントを確認してください。
貢献するための提案
GitLab に貢献することを検討してみてください。 この開発ドキュメントがそのプロセスを案内してくれます。 あるいは、コミュニティの他のメンバーがどのようにPHPやTerraformのサポートを追加しているかをチェックしてみてください。
フォーマット | 使用例 |
---|---|
貨物 | Cargo は Rust パッケージマネージャです。 Rust パッケージをビルド、公開、共有できます。 |
Chef | リポジトリマネージャのすべての利点を使ったChefによる設定管理。 |
ココアポッズ | XcodeとCocoaPodsで開発者をスピードアップ。 |
コンダ | セキュリティと非公開のローカルCondaリポジトリ。 |
CRAN | R言語のCRANパッケージのデプロイと解決。 |
Debian | Debian パッケージのホスティングとプロビジョニング。 |
オプジーグ | Opkgリポジトリを使ってOpenWrtでの作業を最適化しましょう。 |
P2 | すべてのEclipseプラグインをあなた自身のGitLab P2リポジトリにホストします。 |
人形 | Puppetリポジトリによって、構成管理とリポジトリ管理が融合します。 |
回転数 | GitLab から直接 RPM をディストリビューションします。 |
ルビー宝石 | GitLabを使用して独自のgemをホストします。 |
SBT | SBTビルドの実行時に、SBTリポジトリからの依存関係を解決し、ビルド出力をデプロイします。 |
浮浪者 | Vagrantボックスをローカルリポジトリでセキュアにホストします。 |
パッケージワークフロー
GitLab パッケージレジストリの使い方を学ぶことで、独自のカスタムパッケージワークフローを構築することができます。
- プロジェクトをパッケージレジストリとして使い、すべてのパッケージを1つのプロジェクトに公開します。
- monorepoでの作業: 1つのmonorepoプロジェクトから複数の異なるパッケージを公開する方法を学びます。