すべてのプロダクト
Search
ドキュメントセンター

Container Registry:Container Registry Enterprise Editionインスタンスを使用したイメージを構築

最終更新日:Sep 10, 2024

Container Registry Enterprise Editionは、ソースコードからコンテナイメージまで、安全で効率的な自動化された継続的統合プロセスを提供します。 Container Registry Enterprise Editionには、イメージを自動的に構築し、Dockerfileルールに基づいてイメージをイメージリポジトリにコミットする機能もあります。 このトピックでは、Container Registry Enterprise Editionインスタンスを使用してコンテナーイメージを構築する方法について説明します。

前提条件

背景情報

Container Registryのイメージ構築サービスは、セキュリティ、安定性、インテリジェントなアクセラレーションを備えています。

  • セキュリティ: セキュリティを確保するために、システムは各イメージ構築タスクをAlibaba Cloudアカウント専用の環境に分散します。

  • 安定性: ソースコードリポジトリを使用して複数のイメージを構築する場合、イメージ構築タスクはAlibaba Cloudアカウント専用の環境で実行されるため、各イメージ構築タスクに使用される時間は安定しています。

  • インテリジェント加速:

    • デフォルトでは、システムは効率的な構築ツールBuildKitを使用します。 BuildKitには、特に多段階の建物シナリオ向けの堅牢な建物機能があり、豊富な建物機能をサポートしています。

    • システムは共通ベースイメージをホストします。 画像構築中、システムは、画像をプルする必要なしにベース画像を使用することができる。 ベース画像は、構築期間を短縮するのに役立つ。

    • システムは、リモートキャッシュを使用して画像構築を加速できます。

Container Registryは、複数のコードホスティングプラットフォームと高速化されたイメージ生成をサポートします。

  • コードホスティングプラットフォーム: 次の表に、サポートされているコードホスティングプラットフォームを示します。

    コードホスティングプラットフォーム

    バージョンのコードホストプラットフォーム

    バインドの認証方法

    トリガー画像構築の制限

    Gitee

    All

    Gitee OAuth认证

    なし

    GitHub

    GitHub開発者バージョン

    GitHub OAuth认证

    なし

    GitLab

    All

    個人用アクセストークン

    なし

    Bitbucket

    All

    Gitee OAuth认证

    なし

  • 高速化されたイメージ生成: システムでは、コンテナイメージのリソースをオンデマンドでロードできます。 加速バージョンのコンテナイメージは、コンテナイメージがプッシュされた後に自動的に生成されます。 詳細については、「コンテナーイメージのリソースをオンデマンドで読み込む」をご参照ください。

ステップ1: インスタンスをソースコードホスティングプラットフォームにバインドする

イメージを作成する前に、インスタンスをソースコードホスティングプラットフォームにバインドする必要があります。 詳細については、「ソースコードホスティングプラットフォームのバインド」をご参照ください。

重要
  • オンプレミスのコードリポジトリからイメージをビルドすることはできません。

  • 仮想プライベートクラウド (VPC) でプライベートGitLabコードリポジトリをバインドする方法の詳細については、「VPCでのコンテナイメージの構築」をご参照ください。

ステップ2: 名前空間を作成する

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  4. インスタンスページで、名前空間を作成するContainer Registry Enterprise Editionインスタンスをクリックします。

  5. Enterprise Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、リポジトリ > 名前空間.

  6. 名前空間ページをクリックします。名前空間の作成.

  7. [名前空間の作成] ダイアログボックスで、名前空間[リポジトリの自動作成] 、および [デフォルトのリポジトリタイプ] を設定します。 次に、[確認] をクリックします。

ステップ3: イメージリポジトリを作成する

説明

高速化イメージは、Container Registry Advanced Editionインスタンスでのみビルドできます。 Basic EditionインスタンスをAdvanced Editionインスタンスにアップグレードすることを推奨します。

イメージリポジトリを作成し、コードリポジトリにバインドします。 コードリポジトリから生成されたすべてのイメージは、イメージリポジトリにプッシュされます。

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  4. [インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。

  5. Enterprise Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、リポジトリ > リポジトリ.

  6. リポジトリページをクリックします。リポジトリの作成.

  7. [リポジトリ情報] ステップで、[名前空間][リポジトリ名][リポジトリの種類][タグ][高速化イメージ][概要] 、および [説明] パラメーターを設定します。 次に、[次へ] をクリックします。

  8. コードソースステップ、構成コードソース,ビルド設定、およびビルドルールをクリックし、リポジトリの作成.

    パラメーター

    説明

    コードソース

    コードソース。

    ビルド設定

    • コードが変更されたときにイメージを自動的にビルドする: コードがブランチからコミットされると、ビルドルールが自動的にトリガーされます。

    • 中国本土外に配置されたサーバーを使用したビルド: イメージは中国本土外のサーバー上にビルドされ、指定されたリージョンのリポジトリにプッシュされます。 プロジェクトで使用されるDockerfileを中国本土以外のサイトからダウンロードする必要があるが、国境を越えたネットワーク接続が不安定な場合は、中国本土以外に配置されたサーバーでビルドを有効にできます。

    • キャッシュなしのビルド: イメージがビルドされるたびに、システムはソースコードリポジトリからベースイメージをプルします。 これにより、構築プロセスが遅くなる可能性があります。 [キャッシュなしのビルド] を無効にすると、イメージの構築を高速化できます。

    [リポジトリ] ページで、作成したイメージリポジトリをクリックします。 リポジトリ管理ページの左側のナビゲーションウィンドウに [ビルド] が表示されている場合、イメージリポジトリはソースコードリポジトリにバインドされます。

ステップ4: イメージを作成する

説明

リポジトリ管理ページで [ビルド] が見つからない場合、Enterprise Editionインスタンスをコードソースホスティングプラットフォームにバインドできません。 インスタンスをソースコードホスティングプラットフォームに再バインドするには、手順1を参照してください。

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  4. [インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。

  5. Container Registry Enterprise Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、リポジトリ > リポジトリ.

  6. リポジトリページ、作成したイメージリポジトリを見つけ、管理で、アクション列を作成します。

  7. 左側のナビゲーションウィンドウで、[ビルド] をクリックします。 [ビルドルール] セクションで、[ビルドルールの追加] をクリックします。 [ビルドルールの追加] ウィザードの [ビルド情報] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表にパラメーターを示します。

    パラメーター

    説明

    データ型

    ソースコードリポジトリのタイプを指定します。 有効な値: BranchとTag。

    ブランチ /タグ

    ブランチまたはタグを選択または入力します。 正規表現に対応しています。 release-(?<imageTag>\w *) 正規表現を指定すると、release-v1ブランチのソースコードが更新されると、システムは自動的にV1のイメージを構築します。 イメージを手動でビルドすることはできません。 正規表現を指定する方法の詳細については、「名前付きキャプチャグループでの正規表現の使用」をご参照ください。

    説明

    正規表現を指定すると、イメージはシステムによってのみ作成できます。 イメージを手動で作成することはできません。

    ビルドコンテキストディレクトリ

    Dockerfileが存在するディレクトリを指定します。 ブランチまたはタグディレクトリのサブディレクトリです。 たとえば、ブランチディレクトリがmaster /で、Dockerfileがmaster /ディレクトリにある場合、値はmaster/Dockerfileです。

    Dockerfileファイル名

    Dockerfileの名前を指定します。 デフォルトの名前はDockerfileです。

  8. タグステップ、パラメータを設定し、保存をクリックし、次へ.

    説明

    [設定の追加] をクリックして画像タグを追加します。 最大3つの画像タグを追加できます。

    パラメーター

    説明

    画像タグ

    画像のタグ。 例: latest。 名前付きキャプチャグループを有効にできます。 たとえば、Branch/Tagに名前付きキャプチャグループを指定した場合、キャプチャされたコンテンツを使用できます。

    ビルド時間

    ソースコードがプッシュされた時刻 (UTC + 8) 。 例: 20201015または202010151613。

    説明

    このパラメーターはオプションです。 このパラメーターを設定すると、システムのみがイメージを作成できます。 イメージを手動で作成することはできません。

    コミットID

    最後にプッシュされたコードのコミットIDから取得する文字数。 デフォルトでは、最初の6文字が使用されます。 スライダーを調整して文字数を変更できます。

    説明

    このパラメーターはオプションです。 このパラメーターを設定すると、システムのみがイメージを作成できます。 イメージを手動で作成することはできません。

  9. [ビルド設定] ステップで、パラメーターを設定し、[確認] をクリックします。 下表にパラメーターを示します。

    パラメーター

    説明

    ビルドアーキテクチャ

    イメージを作成するアーキテクチャ。 複数のアーキテクチャを選択できます。 複数のアーキテクチャを選択した場合、アーキテクチャの複数のコンテナイメージがイメージタグごとに作成されます。

    ビルドパラメーター

    イメージ構築の実行時パラメーター。 各建物パラメータは、大文字と小文字が区別されるキーと値のペアです。 最大20の建物パラメータを設定できます。 構築パラメーターを設定して、Dockerfileの環境変数を変更し、同じDockerfileに異なるステータスを表示させることができます。

  10. イメージ構築ルールをトリガーします。

    次のいずれかの方法を使用して、イメージ構築ルールをトリガーできます。

    • [ビルド] ページの [ビルドルール] セクションで、イメージビルディングルールを見つけ、[操作] 列の [ビルド] をクリックします。

    • 構築ルールをトリガーするには、ソースコードリポジトリのマスターブランチにコードを送信します。

    説明
    • [ビルド] ページの [ビルドログ] セクションで、トリガーされたイメージ構築タスクを見つけ、[操作] 列の [キャンセル] をクリックして、イメージ構築タスクをキャンセルします。

    • [ビルド] ページの [ビルドログ] セクションで、トリガーされたイメージ構築タスクを見つけ、[操作] 列の [ログ] をクリックして、イメージ構築ログを表示します。

    左側のナビゲーションウィンドウで、[画像タグ] をクリックします。 作成したイメージが表示されると、イメージがビルドされます。

例1: mainという名前のブランチに基づいてイメージをビルドします (手動でイメージをビルドできます) 。

次の設定に基づいて構築ルールを設定します。

  • タイプ: ブランチ

  • ブランチ /タグ: main

  • ビルドコンテキストディレクトリ: /

  • Dockerfileファイル名: Dockerfile

  • 画像タグ: 最新

[ビルド] をクリックするか、メインブランチのソースコードが更新されると、システムはイメージをビルドします。 メインブランチの /ディレクトリにあるDockerfileという名前のファイルを使用して、イメージをビルドします。 作成した画像のタグが最新です。 次の図は、構築ルールの構成を示しています。

基于main构建规则.png

例2: 正規表現に一致するブランチに基づいてイメージを構築する (手動でイメージを構築することはできません)

次の設定に基づいて構築ルールを設定します。

  • タイプ: ブランチ

  • ブランチ /タグ: release-(?<imageTag>\w *)

  • ビルドコンテキストディレクトリ: /

  • Dockerfileファイル名: Dockerfile

  • 画像タグ: ${imageTag}

  • ビルド時間: yyyyMMddHHmm

  • コミットID: 30

名前がrelease- で始まるブランチでソースコードが更新されると、システムは自動的にイメージを構築します。 ブランチの /ディレクトリにあるDockerfileという名前のファイルを使用して、イメージをビルドします。

たとえば、名前がrelease-v1で始まるブランチのソースコードが更新された場合、release-(?<imageTag>\w *) の正規ルールはブランチ名でv1をキャプチャし、v1をimageTag変数に送信し、imageタグでv1を使用します。 この例では、作成された画像のタグはv1-202010151625-d4ef3dc3b77a011a5779eec7efdd45です。 次の図は、構築ルールの構成を示しています。

基于正则规则构建规则.png

次のステップ

イメージの作成後、次の操作を実行できます。