プライベート・リポジトリーからソースをプルするビルド構成を作成します
ソースがプライベート・リポジトリーにある場合は、プライベート・リポジトリーからソースをプルする場所に関する情報を含む設定を使用してビルド構成を作成します。 ビルド出力の場合、レジストリー内のビルドされたイメージにアクセスするためのレジストリー・シークレットとともに、レジストリーの詳細を指定することを選択できます。 あるいは、ソースからイメージを作成し、そのイメージを IBM Cloud Container Registry に保管する処理を Code Engine に任せることもできます。 この場合、レジストリー・シークレットまたはイメージ・レジストリーの場所を指定する必要はありません。
ビルド構成を作成してもイメージは作成されませんが、イメージをビルドするための構成が作成されます。 イメージを作成するには、ビルド構成を参照するビルドを実行する必要があります。 ビルドを実行するまでは、ビルド構成が検証されることも、イメージを作成するために使用されることもありません。 ビルド構成を使用すると、特定のイメージの複数のビルドを後で作成することができます。これはソース・リポジトリーに変更が適用された場合などに便利です。
.gitignore ファイルと同様に動作する .ceignore ファイルを使用して、ソース・コード内の特定のファイル・パターンを無視することを選択できます。 例えば、node.js アプリケーションの.ceignoreファイルのエントリーには、node_modulesおよび.npmが含まれる場合があります。 無視するサンプル・ファイル・パターンについて詳しくは、
GitHub.gitignore リポジトリーを参照してください。
コンソール (プライベート・リポジトリー) からのビルド構成の作成
-
Code Engine ダッシュボードに進みます。
-
コンテナー・レジストリーを追加したプロジェクトを選択します。
-
「プロジェクト」ページで、**「イメージ・ビルド (Image builds)」**をクリックします。
-
「イメージ・ビルド」 タブで、 「作成」 をクリックします。 表示される**「ビルドの詳細を指定 (Specify build details)」**サイド・パネルで、ビルドの詳細を入力します。
-
**「ソース」**セクションで、ビルドの名前、ソース・リポジトリーの URL、およびコード・リポジトリー・アクセスを入力します。
- コードがプライベート・リポジトリー内にある場合は、コード・リポジトリー URL に SSH URL を使用し、既存の SSH シークレットの名前を選択するか、 SSH シークレットを作成 します。 SSH URL の例は、
git@github.com:IBM/CodeEngine.gitです。 - 必要に応じて、ソース・ブランチ名を選択します。 ブランチ名を指定せず、このフィールドを空のままにすると、Code Engineは指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。 他にもブランチ名、タグ、またはコミット ID を入力することができます。
**「次へ」**をクリックして先に進みます。
- コードがプライベート・リポジトリー内にある場合は、コード・リポジトリー URL に SSH URL を使用し、既存の SSH シークレットの名前を選択するか、 SSH シークレットを作成 します。 SSH URL の例は、
-
**「戦略 (Strategy)」**セクションで、使用する戦略を選択します。
- **「Dockerfile」**を選択した場合は、Dockerfile の代替パスも指定できます。
- **「ビルド・リソース (Build resources)」**で、ビルドのサイズを選択します。
**「次へ」**をクリックして、最後のセクションに進みます。
-
出力セクションで、コンテナー・イメージの詳細を入力します。
- 既存のレジストリー・シークレットを選択するか、 「レジストリー・シークレットの作成」 をクリックして新しいレジストリー・シークレットを追加します。
- アカウント内の Container Registry インスタンスにイメージを作成する場合は、
Code Engine managed secretを選択し、 Code Engine でシークレットを作成して管理することができます。 - 続いて、ビルドするイメージの名前空間、リポジトリー、およびタグを選択します。 Code Engine で、 Container Registry に名前空間を作成して管理することを選択できます。
- イメージが Container Registry に存在する場合は、既存のイメージから選択するか、新しいリポジトリーまたはタグを入力することができます。
-
**「完了」**をクリックして、ビルドの作成を終了します。
ビルド構成を作成した後、 ビルドを実行 してイメージ・ファイルを作成する必要があります。 イメージ・ファイルが作成されたら、新しく作成したイメージ・ファイルを使用して アプリをデプロイ したり、 ジョブを実行 したりすることができます。
CLI (プライベート・リポジトリー) を使用したビルド構成の作成
CLI を使用してビルド構成を作成するには、build create コマンドを使用します。 オプションの全リストについては、ibmcloud ce build create コマンドを参照してください。
**build create**コマンドを使用すると、ソースからのイメージの作成と IBM Cloud Container Registry へのイメージの保管を Code Engine に処理させることができます。 この 自動アクセス の場合、レジストリー・シークレットやイメージ・レジストリーの場所を指定する必要はありません。 あるいは、ビルド・イメージ出力の場所を指定し、レジストリー・シークレットを指定して、 Code Engine
がビルド結果にアクセスしてレジストリーにプッシュできるようにすることもできます。
CLI を使用したビルド構成の作成 (プライベート・リポジトリー・ソースとレジストリーへの自動アクセスを使用)
このシナリオでは、Code Engine はプライベート・リポジトリー・ソースからイメージをビルドし、そのイメージを IBM Cloud Container Registry に自動的にアップロードします。 Container Registry で Code Engine がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。
開始前に
プライベート・リポジトリーからイメージをビルドするためのビルド構成を作成し、Code Engine がイメージを自動的に保管してアクセスできるようにします。 例えば、以下の**build create**コマンドは、helloworld-build-privateという名前のビルド構成を作成します。この構成は、プライベート Git リポジトリーhttps://github.com/myprivaterepo/buildsからビルドし、buildpacks戦略とmediumビルド・サイズを使用します。Code
Engine は、イメージを IBM Cloud Container Registry に自動的にアップロードします。 また、リポジトリーのブランチ名が--commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチ (この Git リポジトリーのmain) を自動的に使用します。 イメージ・レジストリーまたはレジストリー・シークレットの場所を指定しないことにより、
Code Engine は、自動アクセスを使用してビルド出力を IBM Cloud Container Registry にプッシュします。
提供された Git リポジトリーはプライベートであるため、アクセスには Git リポジトリーのシークレットが必要です。 その結果、指定する --source は、git@github.com:myprivaterepo/builds.git などの SSH プロトコルを使用する必要があります。 --source の値には、http や https の形式を使用しないでください。
ibmcloud ce build create --name helloworld-build-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo
ビルド構成を作成した後、 ビルドを実行 してイメージ・ファイルを作成する必要があります。 イメージ・ファイルが作成されたら、新しく作成したイメージ・ファイルを使用して アプリをデプロイ したり、 ジョブを実行 したりすることができます。
CLI を使用したビルド構成の作成 (プライベート・リポジトリー・ソースとユーザー提供のレジストリーへのアクセス権限を使用)
このシナリオでは、Code Engine は、提供された Git リポジトリー・シークレットを使用してプライベート・リポジトリー・ソースからイメージを作成し、提供されたレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。
開始前に
- Code Engine の CLI 環境をセットアップします。
- プロジェクトを作成して使用できるようにします。
- ソースにアクセスするための Git リポジトリー・シークレットの作成。
- レジストリー・シークレットを作成して、イメージを保存できるようにします。
プライベート・リポジトリーからイメージをビルドするためのビルド構成を作成し、レジストリー・シークレットを使用してビルド出力のイメージ・レジストリーの場所を指定します。 **build create**コマンドで、--imageオプションを指定してイメージ・レジストリーの場所を指定し、--registry-secretオプションを指定してレジストリーにアクセスします。 例えば、以下のコマンドは、プライベート
Git リポジトリー https://github.com/myprivaterepo/builds からビルドする helloworld-build-private というビルド構成を作成し、 buildpacks 戦略と medium ビルド・サイズを使用し、 myregistry で定義されているレジストリー・シークレットを使用してイメージを
us.icr.io/mynamespace/codeengine-helloworld に保管します。
提供された Git リポジトリーはプライベートであるため、アクセスには Git リポジトリーのシークレットが必要です。 その結果、指定する --source は、git@github.com:myprivaterepo/builds.git などの SSH プロトコルを使用する必要があります。 --source の値には、http や https の形式を使用しないでください。
この例では、コマンドはデフォルトのmediumビルド・サイズを使用します。 リポジトリーのブランチ名が--commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。
ibmcloud ce build create --name helloworld-build-private --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo
ビルド構成を作成した後、 ビルドを実行 してイメージ・ファイルを作成する必要があります。 イメージ・ファイルが作成されたら、新しく作成したイメージ・ファイルを使用して アプリをデプロイ したり、 ジョブを実行 したりすることができます。