スタンドアロン・ビルド・コマンド (CLI) を使用したコンテナー・イメージのビルド
コードがローカルファイルまたはGitリポジトリにソースとして存在する場合、Code Engineは、Open Container Initiative(OCI)標準に従って、コンテナイメージとしてコードをビルドするためのオプションを提供します。 Code Engine CLI では、単一のコマンドでコンテナー・イメージをビルドできます。
Code Engine では、リポジトリー・ソース・コードからのアプリのデプロイ、CLI を使用したローカル・ソース・コードからのアプリのデプロイ、またはリポジトリー・ソース・コードからのジョブの作成や CLI を使用したローカル・ソース・コードからのジョブの作成を使用している場合にはいつでも、ビルド・プロセスを柔軟に処理できます。
ただし、コンテナー・イメージのビルドをより詳細に制御する必要がある場合、Code Engine では、以下のいずれかのオプションを使用してコンテナー・イメージを柔軟にビルドできます。
- 1 つのビルド実行を実行するには、単一の CLI コマンド**
buildrun submit**を使用します。 このオプションの利点は、単一の CLI コマンドでビルドを取得できることです。ただし、ビルドの構成は保持されません。 - 複数のビルド実行を実行できるビルド構成を定義します。 ビルド構成を使用したコンテナー・イメージのビルドを参照してください。
ビルドが完了し、イメージが存在する場合は、コンテナー・イメージをアプリケーションとしてデプロイするか、イメージを参照するジョブを作成することができます。
ビルド構成を参照するのではなく、単一のコマンドを使用してコンテナー・イメージをビルドする方法について説明します。 このシナリオでは、IBM Cloud® Code Engine は Git リポジトリーまたはローカル・ディレクトリーからソース・コードをプルしてビルドし、コンテナー・イメージをレジストリーにプッシュ (アップロード) します。 リポジトリーと レジストリーは、パブリックまたはプライベートのものを選択できます。 ユーザー提供のアクセス権で、ビルド出力用にレジストリの詳細をレジストリ・シークレットで指定することもできる。 あるいは、ソースからイメージを作成し、自動アクセスを使用して IBM Cloud Container Registry にイメージを保管する処理を Code Engine に任せることもできます。
.gitignore ファイルと同様に動作する .ceignore ファイルを使用して、ソース・コード内の特定のファイル・パターンを無視することを選択できます。 例えば、node.js アプリケーションの.ceignoreファイルのエントリーには、node_modulesおよび.npmが含まれる場合があります。 無視するファイルパターンのサンプルについては、
GitHubの.gitignoreリポジトリを参照してください。
コンテナー・イメージをビルドする前に、以下の点を考慮してください。
-
イメージのビルドを開始する前に、計画の情報を確認してください。 レジストリーにアクセスできることも確認する必要があります。 コンテナー・レジストリーに対する権限の設定を参照してください。
-
同じコンテナー・イメージの複数のバージョンをビルドする場合、イメージにタグが指定されていない限り、最新バージョンのコンテナー・イメージがダウンロードされ、ジョブの実行時またはアプリケーションのデプロイ時に使用されます。 イメージにタグが指定されている場合、タグ付けされたイメージがアプリまたはジョブに使用されます。
-
定義されたビルド構成を参照しないCLIで提出されたビルド実行も、コンソールから表示可能です。 プロジェクト・ページで、 「イメージ・ビルド」 をクリックして、イメージ・ビルドおよびビルド実行のリストを表示します。 CLI では、
ibmcloud ce buildrun listコマンドを使用して、プロジェクト内のすべてのビルド実行のリストを表示します。 -
Code Engine には、プロジェクト内のビルド実行の割り当て量があります。 Code Engine の制限について詳しくは、Code Engine の制限と割り当て量を参照してください。
完了したビルド実行は、最終的に自動的に削除されます。 ビルド構成に基づいていない単一の CLI コマンドでビルド実行を実行すると、ビルド実行が成功した場合、このビルド実行は 1 時間後に削除されます。 ビルド実行が成功しなかった場合、このビルド実行は 24 時間後に削除されます。 CLI で表示できるのは、このビルド実行に関する情報のみです。 このビルド実行をコンソールで表示することはできません。
CLI を使用したパブリック・リポジトリーからソースをプルする単一ビルドの実行
ソースがパブリック・リポジトリーにあり、単一のコマンドを使用してコンテナー・イメージをビルドして出力する場合は、**buildrun submit**コマンドを使用して、再使用可能なビルド構成を作成せずにコンテナー・イメージを作成します。
ビルド出力の場合は、自動アクセスを選択し、ソースからのイメージのビルドと IBM Cloud Container Registry へのイメージの保管を Code Engine に任せることができます。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。 または、ユーザー提供アクセスを選択し、レジストリの詳細とレジストリシークレットを指定して、レジストリにあるビルドイメージにアクセスすることもできます。
単一のビルドを実行するためのオプションの完全なリストについては、ibmcloud ce buildrun submitコマンドを参照してください。
CLI を使用した単一ビルドの実行 (パブリック・リポジトリー・ソースとレジストリーへの自動アクセスを使用)
この自動アクセスシナリオでは、Code Engine はパブリック Git リポジトリー・ソースからイメージを作成し、**buildrun submit**コマンドでビルド・オプションを使用することにより、自動アクセスでイメージを IBM Cloud Container Registry にアップロードします。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。
Container Registry で Code Engine がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。
開始前に
-
ビルドを実行して、パブリック Git リポジトリーからイメージをビルドし、Code Engine が自動的にイメージを保管してアクセスできるようにします。 例えば、以下の**
buildrun submit**コマンドは、パブリック Git リポジトリーhttps://github.com/IBM/CodeEngine内のソースからビルドするhelloworld-buildrunというビルド実行を実行します。ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello- この例では、コマンドはデフォルトの
dockerfile戦略と、デフォルトのmediumビルド・サイズを使用します。 - リポジトリーのブランチ名が
--commitオプションで指定されていないため、Code Engine は、指定されたリポジトリーのデフォルト・ブランチ (この Git リポジトリーのmain) を自動的に使用します。 - イメージ・レジストリの場所やレジストリ・シークレットを指定しないことで、Code Engineはビルド出力を自動アクセスでIBM Cloud Container Registryにプッシュする。
- Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。
出力例
Submitting build run 'helloworld-buildrun'... Creating image 'private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun' to check the build run status. OK以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用してください。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--sourceGit リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、 https://github.com/IBM/CodeEngine)。--context-dirbuildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。 - この例では、コマンドはデフォルトの
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get -n helloworld-buildrun出力例
生成されたイメージの名前と、自動的に作成されたレジストリ・シークレットの名前が、
ce-auto-icr-private-<region>.Getting build 'helloworld-buildrun' For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun' to follow the logs of the build run. OK Name: helloworld-buildrun ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:30:46-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:ba3c445a27238040e102c083f76ad8922effcc3a7c4dc97b8472e626d87c11a2 Image: private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Commit: main Context Directory: /hello Dockerfile: Dockerfile
CLI を使用した単一ビルドの実行 (パブリック・リポジトリー・ソースおよびレジストリーへのユーザー提供アクセスを使用)
このユーザー提供のアクセスシナリオでは、Code Engine は、パブリック Git リポジトリー・ソースからイメージをビルドしてから、単一のビルド・コマンドで提供されるレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。
開始前に
-
ビルドを実行して、公開されているGitリポジトリからイメージをビルドし、ビルド出力用のイメージ・レジストリの場所をレジストリ・シークレットで指定します。 例えば、以下の
buildrun submitコマンドは、パブリック Git リポジトリーhttps://github.com/IBM/CodeEngineからビルドするhelloworld-buildrun2というビルド実行を実行し、myregistryレジストリー・シークレットを使用してこのレジストリーにアクセスすることにより、イメージをus.icr.io/mynamespace/codeengine-helloworldレジストリーに保管します。ibmcloud ce buildrun submit --name helloworld-buildrun2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello- この例では、コマンドはデフォルトの
dockerfile戦略と、デフォルトのmediumビルド・サイズを使用します。 - リポジトリーのブランチ名が
--commitオプションで指定されていないため、Code Engine は、指定されたリポジトリーのデフォルト・ブランチ (この Git リポジトリーのmain) を自動的に使用します。 dockerfileの値を指定して--strategyオプションを使用する場合は、--dockerfileオプションがdockerfileの名前に正しく設定されていることを確認してください。--strategyオプションのデフォルト値はDockerfileです。- Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。
出力例
Submitting build run 'helloworld-buildrun2'... Creating image 'us.icr.io/mynamespace/codeengine-helloworld'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun2' to check the build run status. OK以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--imageイメージ・レジストリーのロケーション。 場所の形式は REGISTRY/NAMESPACE/REPOSITORYまたはREGISTRY/NAMESPACE/REPOSITORY:TAGでなければなりません。ここで、TAGはオプションです。TAGを指定しない場合、そのデフォルトはlatestです。--registry-secretコンテナ・イメージの作成時にレジストリにアクセスするためのレジストリ秘密情報。 ** secret create --format registry**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。--sourceGit リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、 https://github.com/IBM/CodeEngine)。--context-dirbuildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。 - この例では、コマンドはデフォルトの
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get --name helloworld-buildrun2出力例
Getting build run 'helloworld-buildrun2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n helloworld-buildrun2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n helloworld-buildrun2' to follow the logs of the build run. OK Name: helloworld-buildrun2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:57:43-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:6312ee613efa5bec7baa20c47f607e7f15473947d5675fd7384491bee8023afc Image: us.icr.io/mynamespace/codeengine-helloworld2 Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Context Directory: /hello Dockerfile: Dockerfile
コマンド検証失敗のメッセージを受け取った場合は、シークレットが存在することを確認します。 イメージのレジストリー・シークレット (--registry-secret) を参照していて、そのシークレットが存在しない場合は、 コンテナー・レジストリーへのアクセス を参照してください。 ビルドについて詳しくは、トラブルシューティングのヒントを確認してください。
CLI を使用したプライベート・リポジトリーからソースをプルする単一ビルドの実行
ソースがプライベート・リポジトリーにあり、単一のコマンドを使用してコンテナー・イメージをビルドして出力する場合は、**buildrun submit**コマンドを使用して、再使用可能なビルド構成を作成せずにコンテナー・イメージを作成します。
ビルド出力の場合は、自動アクセスを選択し、ソースからのイメージのビルドと IBM Cloud Container Registry へのイメージの保管を Code Engine に任せることができます。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。 または、ユーザー提供アクセスを選択し、レジストリの詳細とレジストリシークレットを指定して、レジストリにあるビルドイメージにアクセスすることもできます。
単一のビルドを実行するためのオプションの完全なリストについては、ibmcloud ce buildrun submitコマンドを参照してください。
CLI を使用した単一ビルドの実行 (プライベート・リポジトリー・ソースとレジストリーへの自動アクセスを使用)
この自動アクセスシナリオでは、Code Engine はプライベート・リポジトリー・ソースからイメージをビルドし、**buildrun submit**コマンドでビルド・オプションを使用することにより、自動アクセスを使用してそのイメージを IBM Cloud Container Registry にアップロードします。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。
Container Registry で Code Engine がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。
開始前に
-
ビルドを実行してプライベート・リポジトリーからイメージをビルドし、Code Engine が自動的にイメージを保管してアクセスできるようにします。 例えば、以下の**
buildrun submit**コマンドは、プライベート Git リポジトリーhttps://github.com/myprivaterepo/buildsからビルドするhelloworld-buildrun-privateという名前のビルド実行を実行します。ibmcloud ce buildrun submit --name helloworld-buildrun-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- このコマンド例では、
buildpacks戦略とmediumビルド・サイズを使用します。 - イメージ・レジストリの場所やレジストリ・シークレットを指定しないことで、Code Engineはビルド出力を自動アクセスでIBM Cloud Container Registryにプッシュする。
- 指定したGitリポジトリのソースは非公開なので、アクセスにはSSHシークレットが必要です。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。 その結果、指定する
--sourceは、git@github.com:myprivaterepo/builds.gitなどの SSH プロトコルを使用する必要があります。--sourceの値には、httpやhttpsの形式を使用しないでください。 - リポジトリーのブランチ名が
--commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。 - Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。
以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--sourceGit リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、 git@github.com:myprivaterepo/builds.git)。--context-dirbuildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。 --strategyイメージのビルドに使用する戦略。 有効な値は dockerfileおよびbuildpacksです。--git-repo-secretSSH シークレットの名前。これには、コンテナー・イメージをビルドするためのソース・コードを含むプライベート・リポジトリーにアクセスするための資格情報が含まれています。 secret create --sshコマンドを実行して、このシークレットを作成します。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。 - このコマンド例では、
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get --name helloworld-buildrun-private出力例
Getting build run 'helloworld-buildrun-private'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private' to follow the logs of the build run. OK Name: helloworld-buildrun-private ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-08T06:02:36-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-buildrun-private Registry Secret: ce-auto-icr-private-us-south Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
CLI を使用した単一ビルドの実行 (プライベート・リポジトリー・ソースおよびレジストリーへのユーザー提供アクセスを使用)
このユーザー提供のアクセスシナリオでは、Code Engine は、指定した Git リポジトリー・シークレットを使用してプライベート・リポジトリー・ソースからイメージを作成し、単一のビルド・コマンドで指定したレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。
開始前に
- Code Engine の CLI 環境をセットアップします。
- プロジェクトを作成して使用できるようにします。
- ソースにアクセスするための SSH シークレットを作成します。
- レジストリー・シークレットを作成して、イメージを保存できるようにします。
-
ビルドを実行してプライベートリポジトリからイメージをビルドし、ビルド出力のイメージレジストリの場所をレジストリ・シークレットで指定します。 以下の例の
buildrun submitコマンドは、プライベート Git リポジトリーhttps://github.com/myprivaterepo/buildsからビルドするhelloworld-buildrun-private2というビルド実行を実行し、このレジストリーにアクセスするためにmyregistryレジストリー・シークレットを使用してイメージをus.icr.io/mynamespace/codeengine-helloworldに保管します。ibmcloud ce buildrun submit --name helloworld-buildrun-private2 --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 myrepossh- このコマンド例では、
buildpacksストラテジーとデフォルトのmediumビルド・サイズを使用します。 - 提供されているGitリポジトリは非公開のため、アクセスにはSSHシークレットが必要です。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。 その結果、指定する
--sourceは、git@github.com:myprivaterepo/builds.gitなどの SSH プロトコルを使用する必要があります。--sourceの値には、httpやhttpsの形式を使用しないでください。 - リポジトリーのブランチ名が
--commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。 - Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。
以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--imageイメージ・レジストリーのロケーション。 場所の形式は REGISTRY/NAMESPACE/REPOSITORYまたはREGISTRY/NAMESPACE/REPOSITORY:TAGでなければなりません。ここで、TAGはオプションです。TAGを指定しない場合、そのデフォルトはlatestです。--registry-secretコンテナ・イメージの作成時にレジストリにアクセスするためのレジストリ秘密情報。 ** secret create --format registry**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。--sourceGit リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、 git@github.com:myprivaterepo/builds.git)。--context-dirbuildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。 --strategyイメージのビルドに使用する戦略。 有効な値は dockerfileおよびbuildpacksです。--git-repo-secretSSH シークレットの名前。これには、コンテナー・イメージをビルドするためのソース・コードを含むプライベート・リポジトリーにアクセスするための資格情報が含まれています。 secret create --sshコマンドを実行して、このシークレットを作成します。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。 - このコマンド例では、
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get --name helloworld-buildrun-private2出力例
Getting build run 'helloworld-buildrun-private2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private2' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private2' to follow the logs of the build run. OK Name: helloworld-buildrun-private2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d10h Created: 2022-06-08T06:11:05-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
ローカル・ディレクトリーからソースをプルする単一ビルドの実行
ソースがローカル・ワークステーション上にあり、単一のコマンドを使用してコンテナー・イメージをビルドして出力する場合は、**buildrun submit**コマンドを使用して、再使用可能なビルド構成を作成せずにコンテナー・イメージを作成します。
ビルド出力の場合は、自動アクセスを選択し、ソースからのイメージのビルドと IBM Cloud Container Registry へのイメージの保管を Code Engine に任せることができます。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。 または、ユーザー提供アクセスを選択し、レジストリの詳細とレジストリシークレットを指定して、レジストリにあるビルドイメージにアクセスすることもできます。
ローカル・ディレクトリーからコードをプルするビルドを実行依頼すると、ソース・コードがアーカイブ・ファイルにパックされ、IBM Cloud Container Registryインスタンスにアップロードされます。 ローカル・ビルドのIBM Cloud Container Registryのみをターゲットにすることができます。 ソース・イメージは、ビルド・イメージと同じ名前空間に作成されます。
.gitignore ファイルと同様に動作する .ceignore ファイルを使用して、ソース・コード内の特定のファイル・パターンを無視することを選択できます。 例えば、node.js アプリケーションの.ceignoreファイルのエントリーには、node_modulesおよび.npmが含まれる場合があります。 無視するファイルパターンのサンプルについては、
GitHubの.gitignoreリポジトリを参照してください。
単一のビルドを実行するためのオプションの完全なリストについては、ibmcloud ce buildrun submitコマンドを参照してください。
CLI を使用した単一ビルドの実行 (ローカル・ソースとレジストリーへの自動アクセスを使用)
この自動アクセスシナリオでは、Code Engine はローカル・ソースからイメージをビルドし、**buildrun submit**コマンドでビルド・オプションを使用することにより、自動アクセスでイメージを IBM Cloud Container Registry に自動的にアップロードします。
Container Registry で Code Engine がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。 この場合、レジストリ・シークレットやイメージ・レジストリの場所を指定する必要はありません。
開始前に
ローカル・ソースを操作する前に、ソースがローカル・ワークステーション上のアクセス可能な場所にあることを確認してください。
この例では、https://github.com/IBM/CodeEngineサンプル、特にhelloworldサンプルを使用します。
-
以下のコマンドを使用して、
https://github.com/IBM/CodeEngineサンプル・ソースをローカル・ワークステーションにダウンロードします。git clone https://github.com/IBM/CodeEngine -
CodeEngine\helloworldディレクトリーに変更します。 -
CodeEngine\helloworldディレクトリーからビルドを実行して、ローカル・ワークステーション上のhelloworldソースからイメージをビルドし、Code Engine が自動的にイメージを保管してアクセスできるようにします。 このコマンドにより、イメージが自動的にビルドされ、アカウント内の Container Registry 名前空間にプッシュされます。 既存の Container Registry 名前空間がない場合は、Code Engine によって自動的に作成されます。 例えば、以下の**buildrun submit**コマンドは、ローカル・ソースからビルドするbuildrun-local-dockerfileという名前のビルド実行を実行します。ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source ..は、ビルド・ソースが現行作業ディレクトリーにあることを示します。- このコマンド例では、デフォルトの
dockerfile戦略と、デフォルトのmediumビルド・サイズを使用します。 - イメージ・レジストリの場所やレジストリ・シークレットを指定しないことで、Code Engineはビルド出力を自動アクセスでIBM Cloud Container Registryにプッシュする。
- Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。
出力例
Packaging files to upload from source path '.'... Submitting build run 'buildrun-local-dockerfile'... Creating image 'private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile'... Run 'ibmcloud ce buildrun get -n buildrun-local-dockerfile' to check the build run status. OK以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--sourceソース・コードを含むローカル・ソースへのパス、または Git リポジトリーの URL (例えば、 .)。 - このコマンド例では、デフォルトの
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get --name buildrun-local-dockerfile出力例
Getting build run 'buildrun-local-dockerfile'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile' to follow the logs of the build run. OK Name: buildrun-local-dockerfile ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:09:34-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:ced7abc34f018941145efb56e9a0c1fca99236653c2a05dd5b8b985928ff5f4f Image Digest: sha256:6459430ff49436494aa5e3103eaac98ad90ea50df88a2e14af6314fe88f3c952 Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile-source Source Registry Secret: ce-auto-icr-private-us-south Dockerfile: Dockerfile生成されたイメージの名前と、自動的に作成されたレジストリ・シークレットの名前が、
ce-auto-icr-private-<region>.
CLI を使用した単一ビルドの実行 (ローカル・ソースとレジストリーへのユーザー提供アクセスを使用)
このユーザー提供のアクセスシナリオでは、Code Engine はローカル・ソースからイメージを作成し、**buildrun submit**コマンドで指定したレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。
開始前に
ローカル・ソースを操作する前に、ソースがローカル・ワークステーション上のアクセス可能な場所にあることを確認してください。
この例では、https://github.com/IBM/CodeEngineサンプル、特にhelloworldサンプルを使用します。
-
以下のコマンドを使用して、
https://github.com/IBM/CodeEngineサンプル・ソースをローカル・ワークステーションにダウンロードします。git clone https://github.com/IBM/CodeEngine -
CodeEngine\helloworldディレクトリーに変更します。 -
CodeEngine\helloworldから、ビルド・ランを実行してローカル・ワークステーションhelloworld上でソースからイメージをビルドし、ビルド出力用のイメージ・レジストリーの場所をレジストリー・シークレットで指定する。 この**buildrun submit**コマンドは、--imageオプションで指定したレジストリーにイメージを自動的にビルドしてプッシュします。 レジストリーにアクセスするには、--registry-secretオプションを指定します。ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry.は、ビルド・ソースが現行作業ディレクトリーにあることを示します。- Code Engine は、
--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。 - この例では、コマンドはデフォルトの
dockerfile戦略と、デフォルトのmediumビルド・サイズを使用します。
以下の表は、この例の
buildrun submitコマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submitコマンドを参照してください。コマンドの説明 オプション 説明 --nameビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
- 名前の先頭と末尾は小文字でなければなりません。
- 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
--sourceソース・コードを含むローカル・ソースへのパス、または Git リポジトリーの URL (例えば、 .)。--imageイメージ・レジストリーのロケーション。 場所の形式は REGISTRY/NAMESPACE/REPOSITORYまたはREGISTRY/NAMESPACE/REPOSITORY:TAGでなければなりません。ここで、TAGはオプションです。TAGを指定しない場合、そのデフォルトはlatestです。--registry-secretコンテナ・イメージの作成時にレジストリにアクセスするためのレジストリ秘密情報。 ** secret create --format registry**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。 - Code Engine は、
-
**
buildrun get**コマンドを使用して、ビルド実行の状況を確認します。ibmcloud ce buildrun get --name buildrun-local-dockerfile2出力例
Getting build run 'buildrun-local-dockerfile2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile2' to follow the logs of the build run. OK Name: buildrun-local-dockerfile2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:34:42-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:00fb80a8cdc17394ccae564efceb81f48c2cbcbd76afd0fb0b74019352933a63 Image Digest: sha256:25bc4bedccc1b34c98ccd92368246df3e61a7cf0cf4915a32f111669b60e2fea Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: us.icr.io/mynamespace/codeengine-helloworld-source Source Registry Secret: myregistry Dockerfile: Dockerfile
ビルドの次のステップ
これで、ソースからコンテナー・イメージをビルドしたので、コンテナー・イメージを使用するアプリケーションまたはジョブを作成できます。 アプリケーションのデプロイおよびジョブの実行を参照してください。
コード・サンプルがさらに必要ですか? IBM Cloud Code Engine GitHub repoを確認してください。