IBM Cloud Docs
スタンドアロン・ビルド・コマンド (CLI) を使用したコンテナー・イメージのビルド

スタンドアロン・ビルド・コマンド (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 がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。

開始前に

  1. ビルドを実行して、パブリック 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 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
    --source Git リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、https://github.com/IBM/CodeEngine)。
    --context-dir buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。
  2. **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 リポジトリー・ソースからイメージをビルドしてから、単一のビルド・コマンドで提供されるレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。

開始前に

  1. ビルドを実行して、公開されている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**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。
    --source Git リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、https://github.com/IBM/CodeEngine)。
    --context-dir buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。
  2. **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 がこれらのイメージに自動的にアクセスするために必要な許可の設定について詳しくは、イメージ・レジストリーの権限のセットアップを参照してください。

開始前に

  1. ビルドを実行してプライベート・リポジトリーからイメージをビルドし、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 の値には、httphttps の形式を使用しないでください。
    • リポジトリーのブランチ名が--commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。
    • Code Engine は、--sourceオプションの値に基づいて、ソースがリポジトリーにあるかローカル・ワークステーションにあるかを自動的に判別します。

    以下の表は、この例の buildrun submit コマンドで使用されるオプションの要約です。 コマンドとそのオプションについて詳しくは、ibmcloud ce buildrun submit コマンドを参照してください。

    コマンドの説明
    オプション 説明
    --name

    ビルド実行の名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。

    • 名前の先頭と末尾は小文字でなければなりません。
    • 名前は 63 文字以下でなければならず、小文字の英数字とハイフン (-) を含めることができます。
    --source Git リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、git@github.com:myprivaterepo/builds.git)。
    --context-dir buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。
    --strategy イメージのビルドに使用する戦略。 有効な値は dockerfile および buildpacks です。
    --git-repo-secret SSH シークレットの名前。これには、コンテナー・イメージをビルドするためのソース・コードを含むプライベート・リポジトリーにアクセスするための資格情報が含まれています。 secret create --ssh コマンドを実行して、このシークレットを作成します。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。
  2. **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 リポジトリー・シークレットを使用してプライベート・リポジトリー・ソースからイメージを作成し、単一のビルド・コマンドで指定したレジストリー・アクセス権限を使用してイメージをコンテナー・レジストリーにアップロードします。

開始前に

  1. ビルドを実行してプライベートリポジトリからイメージをビルドし、ビルド出力のイメージレジストリの場所をレジストリ・シークレットで指定します。 以下の例の 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 の値には、httphttps の形式を使用しないでください。
    • リポジトリーのブランチ名が--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**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。
    --source Git リポジトリーの URL、またはソース・コードを含むローカル・ソースへのパス (例えば、git@github.com:myprivaterepo/builds.git)。
    --context-dir buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 ビルドパック・ファイルまたは Dockerfile がサブディレクトリーに入っている場合は、この値を指定します。
    --strategy イメージのビルドに使用する戦略。 有効な値は dockerfile および buildpacks です。
    --git-repo-secret SSH シークレットの名前。これには、コンテナー・イメージをビルドするためのソース・コードを含むプライベート・リポジトリーにアクセスするための資格情報が含まれています。 secret create --ssh コマンドを実行して、このシークレットを作成します。 SSH シークレットは、 Git リポジトリー・アクセス・シークレットとしても使用されます。
  2. **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サンプルを使用します。

  1. 以下のコマンドを使用して、https://github.com/IBM/CodeEngineサンプル・ソースをローカル・ワークステーションにダウンロードします。

    git clone https://github.com/IBM/CodeEngine
    
  2. CodeEngine\helloworldディレクトリーに変更します。

  3. 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 (例えば、.)。
  4. **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サンプルを使用します。

  1. 以下のコマンドを使用して、https://github.com/IBM/CodeEngineサンプル・ソースをローカル・ワークステーションにダウンロードします。

    git clone https://github.com/IBM/CodeEngine
    
  2. CodeEngine\helloworldディレクトリーに変更します。

  3. 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**コマンドを実行して、レジストリー・シークレットを作成します。 レジストリ秘密は、プライベートレジストリとの認証に使用される。
  4. **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を確認してください。