リポジトリー・ソース・コードからのアプリのデプロイ

IBM Cloud® Code Engine コンソールおよび CLI を使用して、Git リポジトリーにあるソース・コードからアプリケーションを直接デプロイできます。 Code Engine でイメージをビルドする場合の利点を参照してください。

コンソールからのリポジトリー・ソース・コードからのアプリのデプロイ

コンソールで、ソース・コードから直接アプリケーションをデプロイすることができます。

始める前に、ビルドの計画を立てます。 Dockerfile の作成についてのヒントも確認してください。

Code Engine は、アカウント内の IBM Cloud® Container Registry 名前空間にイメージを自動的にプッシュ (アップロード) し、名前空間を作成することもできます。 別の Container Registry アカウントまたはプライベート Docker Hub アカウントにイメージをアップロードするには、コンテナー・レジストリーへのアクセスを参照してください。

イメージ・レジストリーにアクセスするために必要な許可について詳しくは、 イメージ・レジストリーの権限のセットアップ を参照してください。

  1. Code Engine コンソールを開きます。
  2. 作成を開始 」を選択します。
  3. 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 アプリをデプロイするには、選択したプロジェクトがなければならないことに注意してください。
  4. **「アプリケーション」**を選択します。
  5. アプリケーションの名前を入力します。 プロジェクト内で固有のアプリケーション名を使用してください。
  6. ソースコードからコンテナイメージをビルド 」を選択します。
  7. **「ビルドの詳細を指定 (Specify build details)」**をクリックします。
  8. ソース・リポジトリー (例えば、 https://github.com/IBM/CodeEngine) を選択します。 資格情報を必要としないサンプル・ソースを使用しているため、コード・リポジトリー・アクセスにはNoneを選択します。 オプションでブランチ名を指定できます。 ブランチ名を指定せず、このフィールドを空のままにすると、Code Engineは指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。 次へ をクリックします。
  9. ビルドの方式およびビルドのリソースを選択します。 ビルド・オプションについて詳しくは、ビルドの計画を参照してください。 **「次へ」**をクリックします。
  10. コンテナー・レジストリー・ロケーション (IBM Registry Dallas など) を選択して、ビルド出力のイメージを保管する場所を指定します。 プライベート・レジストリーである場合は、そのレジストリーへのアクセスをセットアップする必要があります。
  11. ビルド出力のイメージを保管する場所に関するレジストリー情報を指定します。 既存のレジストリ・シークレットを選択するか、新しいものを作成してください。 アカウント内のContainer Registryインスタンスにイメージを作成する場合は、Code Engine managed secretを選択して、Code Engineにシークレットを作成して管理させることができます。
  12. イメージの名前空間、名前、タグを選択します。 アカウント内の IBM Cloud Container Registry インスタンスにイメージをビルドする場合は、既存の名前空間を選択するか、Code Engine に名前空間を作成して管理させることができます。
  13. 「完了 (Done)」 をクリックします。
  14. アプリのランタイム設定または環境変数に変更を加えます。 これらのオプションについて詳しくは、アプリのエンドポイント可視性のオプション および アプリをデプロイするためのオプションを参照してください。
  15. 「作成」 をクリックします。
  16. ビルド実行が実行されると、ビルドされたコンテナー・イメージが Container Registry に送信され、アプリケーションが自動的にそのイメージをプルしてデプロイします。 アプリケーションの状況が**「準備完了 (Ready)」**に変わったら、アプリケーションをテストできます。 **「アプリケーションのテスト (Test application)」をクリックしてから、「アプリケーションのテスト (Test application)」ペインで「要求の送信」をクリックします。 Web ページでアプリケーションを開くには、「アプリケーション URL (Application URL)」**をクリックします。

完了したビルド実行は、最終的に自動的に削除されます。 ビルド実行がビルド構成に基づいている場合、ビルド実行が成功すると、このビルド実行は 3 時間後に削除されます。 ビルドの実行が失敗した場合、そのビルドは48時間後に削除されます。

アプリケーションのデプロイが完了したので、アプリケーション・リビジョンと実行中のインスタンスに関する情報、および構成の詳細を表示できます。

CLI を使用したリポジトリー・ソース・コードからのアプリのデプロイ

CLI を使用して、リポジトリー・ソース・コードからアプリケーションを直接デプロイできます。 **app create**コマンドを使用して、Git リポジトリー・ソースからイメージをビルドし、このビルドされたイメージを参照するようにアプリケーションをデプロイします。

開始前に

このシナリオでは、Code Engine は Git リポジトリー・ソースからイメージをビルドし、そのイメージをコンテナー・レジストリーに自動的にアップロードしてから、このビルドされたイメージを参照するアプリを作成してデプロイします。 イメージを IBM Cloud® Container Registry アカウント内に配置する場合は、アプリの名前と Git リポジトリーの URL のみを指定する必要があります。 この場合、Code Engine が自動的に名前空間を管理します。 ただし、別のコンテナレジストリを使用したい場合は、そのコンテナレジストリ用のイメージとレジストリシークレットを指定する必要があります。 オプションの全リストについては、ibmcloud ce app create コマンドを参照してください。

イメージ・レジストリーにアクセスするために必要な許可について詳しくは、 イメージ・レジストリーの権限のセットアップ を参照してください。

以下の**application create**コマンドの例では、https://github.com/IBM/CodeEngineビルド・ソースからビルドされたイメージを参照するmyappアプリを作成してデプロイします。 このコマンドは、イメージを自動的にビルドし、イメージをアカウント内の IBM Cloud® Container Registry 名前空間にアップロードします。アプリケーションはこのビルドされたイメージを参照します。 --build-context-dirオプションを指定すると、ビルドはhelloworldディレクトリー内のソースを使用します。 このコマンド例では、デフォルトのdockerfile戦略と、デフォルトのmediumビルド・サイズを使用します。 リポジトリーのブランチ名が--build-commitオプションで指定されていないため、Code Engine は指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。

ibmcloud ce application create --name myapp --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld

出力例

Creating application 'myapp'...
Submitting build run 'myapp-run-220411-13abcdefg'...
Creating image 'private.us.icr.io/ce--abcde-4svg40kna19/app-myapp:220411-1756-if8jv'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220411-13abcdefg' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK
https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud

application create コマンドの出力には、アプリが作成・デプロイされる前のビルドの実行状況に関する情報が含まれていることに注意してください。

この例では、ビルドされたイメージが Container Registry 内のce--abcde-4svg40kna19名前空間にアップロードされます。

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

コマンドの説明
オプション 説明
--name アプリケーションの名前。 プロジェクト内で固有の名前を使用します。 この値は必須です。
-名前は小文字で始まる必要があります。
-名前は小文字の英数字で終わる必要があります。
-名前は 63 文字以下でなければならず、文字、数字、およびハイフン (-) を含めることができます。
--build-source ソース・コードが含まれている Git リポジトリーの URL (例: https://github.com/IBM/CodeEngine)。
--build-context-dir buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。 この値はオプションです。

以下の出力は、ビルドに関する情報を含む、この例の**application get**コマンドの結果を示しています。

出力例

[...]
Name:          myapp  
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
Project Name:  myproject  
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           2d15h
Created:       2022-04-14T16:10:11-04:00
URL:                https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
Console URL:        https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
Status Summary:  Application deployed successfully
Environment Variables:    
    Type     Name             Value  
    Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
    Literal  CE_APP           myapp  
    Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
    Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Literal  CE_REGION        us-south  
    Literal  CE_SUBDOMAIN     abcdabcdab
Image:                  private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj
Resource Allocation:
  CPU:                1
  Ephemeral Storage:  400M
  Memory:             4G
Registry Secrets:
  ce-auto-icr-private-us-south
Revisions:
  myapp-00001:
    Age:                23m
    Latest:             true
    Traffic:            100%
    Image:              private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj (pinned to 86944c)  
    Running Instances:  0
Runtime:
  Concurrency:    100
  Maximum Scale:  10
  Minimum Scale:  0
  Timeout:        300
Build Information:
  Build Run Name:     myapp-run-220414-161009244
  Build Type:         git
  Build Strategy:     dockerfile-medium
  Timeout:            600
  Source:             https://github.com/IBM/CodeEngine
  Context Directory:  helloworld
  Dockerfile:         Dockerfile
  Build Run Summary:  Succeeded
  Build Run Status:   Succeeded
  Build Run Reason:   All Steps have completed executing
  Run 'ibmcloud ce buildrun get -n myapp-run-220414-161009244' for details.
[...]

アプリがリポジトリー・ソース・コードから作成およびデプロイされたので、ibmcloud ce app updateコマンドを使用して、ニーズに合わせてアプリを更新できます。 アプリケーションの更新について詳しくは、アプリの更新を参照してください。 アプリで使用するためにソースを更新する場合は、**application update**コマンドで--build-sourceオプションを指定する必要があります。

アプリがリポジトリー・ソース・コードから、または CLI を使用して ローカル・ソース からデプロイされる場合、結果のビルド実行はビルド構成に基づきません。 完了したビルド実行は、最終的に自動的に削除されます。 ビルド構成に基づいていないビルド実行は、ビルド実行が成功した場合、1 時間後に削除されます。 ビルド実行が成功しなかった場合、このビルド実行は 24 時間後に削除されます。 CLI で表示できるのは、このビルド実行に関する情報のみです。 このビルド実行をコンソールで表示することはできません。

次のステップ

アプリがデプロイされると、アプリの作成方法や以前の更新方法に関係なく、以下の任意の方法でデプロイされたアプリの更新および参照されるコードの更新を行うことができます。

  • Open Container Initiative(OCI)規格に準拠したコンテナイメージをお持ちの場合は、アプリをデプロイする際に、コンテナレジストリの場所を指すイメージへの参照のみを指定すれば十分です。 パブリック・レジストリー または プライベート・レジストリー 内のイメージを使用してアプリをデプロイできます。

    app create コマンドを使用してアプリを作成し、 --build-source オプションを指定してローカルまたはリポジトリー・ソースからコンテナー・イメージをビルドし、別のコンテナー・イメージを指すようにアプリを変更する場合は、まずアプリからビルドの関連付けを削除する必要があります。 例えば、 ibmcloud ce application update -n APP_NAME --build-clear を実行します。 アプリからビルドの関連付けを削除した後、別のイメージを参照するようにアプリを更新できます。

  • Git リポジトリーにあるソース・コードから開始する場合は、ソースからイメージをビルドし、単一操作でアプリをデプロイする処理を Code Engine に任せることができます。 このシナリオでは、Code Engine はイメージを IBM Cloud® Container Registry にアップロードします。 詳しくは、リポジトリー・ソース・コードからのアプリのデプロイを参照してください。 イメージのビルドをより詳細に制御したい場合は、アプリをデプロイする前に Code Engine を使用してイメージのビルドを選択できます。

  • ローカル・ワークステーションにあるソース・コードから開始する場合は、ソースからのイメージのビルドと単一 CLI コマンドを使用したアプリのデプロイを Code Engine に処理させることができます。 このシナリオでは、Code Engine はイメージを IBM Cloud® Container Registry にアップロードします。 詳しくは、CLI を使用したローカル・ソース・コードからのアプリのデプロイを参照してください。 イメージのビルドをより詳細に制御したい場合は、アプリをデプロイする前に Code Engine を使用してイメージのビルドを選択できます。

    例えば、アプリのソースの開発を進化させながら、ローカル・ソースのビルドを Code Engine に処理させることができます。 その後、イメージが成熟すると、必要な特定のイメージを参照するようにデプロイ済みアプリを更新できます。 必要に応じて、このプロセスを繰り返すことができます。

更新したアプリをデプロイすると、イメージにタグが指定されていない限り、参照されているコンテナー・イメージの最新バージョンがダウンロードされてデプロイされます。 イメージにタグが指定されている場合、タグ付けされたイメージがデプロイメントに使用されます。

コード・サンプルがさらに必要ですか? 「 IBM Cloud Code Engine 」のサンプルについては、 GitHub リポジトリをご覧ください。