リポジトリー・ソース・コードからのアプリのデプロイ
IBM Cloud® Code Engine コンソールおよび CLI を使用して、Git リポジトリーにあるソース・コードからアプリケーションを直接デプロイできます。 Code Engine でイメージをビルドする場合の利点を参照してください。
コンソールからのリポジトリー・ソース・コードからのアプリのデプロイ
コンソールで、ソース・コードから直接アプリケーションをデプロイすることができます。
始める前に、ビルドの計画を立てます。 Dockerfile の作成についてのヒントも確認してください。
Code Engine は、アカウント内の IBM Cloud® Container Registry 名前空間にイメージを自動的にプッシュ (アップロード) し、名前空間を作成することもできます。 別の Container Registry アカウントまたはプライベート Docker Hub アカウントにイメージをアップロードするには、コンテナー・レジストリーへのアクセスを参照してください。
イメージ・レジストリーにアクセスするために必要な許可について詳しくは、 イメージ・レジストリーの権限のセットアップ を参照してください。
- Code Engine コンソールを開きます。
- 「 作成を開始 」を選択します。
- 選択可能なプロジェクトのリストからプロジェクトを選択します。 新規作成することもできます。 アプリをデプロイするには、選択したプロジェクトがなければならないことに注意してください。
- **「アプリケーション」**を選択します。
- アプリケーションの名前を入力します。 プロジェクト内で固有のアプリケーション名を使用してください。
- 「 ソースコードからコンテナイメージをビルド 」を選択します。
- **「ビルドの詳細を指定 (Specify build details)」**をクリックします。
- ソース・リポジトリー (例えば、
https://github.com/IBM/CodeEngine) を選択します。 資格情報を必要としないサンプル・ソースを使用しているため、コード・リポジトリー・アクセスにはNoneを選択します。 オプションでブランチ名を指定できます。 ブランチ名を指定せず、このフィールドを空のままにすると、Code Engineは指定されたリポジトリーのデフォルト・ブランチを自動的に使用します。 次へ をクリックします。 - ビルドの方式およびビルドのリソースを選択します。 ビルド・オプションについて詳しくは、ビルドの計画を参照してください。 **「次へ」**をクリックします。
- コンテナー・レジストリー・ロケーション (
IBM Registry Dallasなど) を選択して、ビルド出力のイメージを保管する場所を指定します。 プライベート・レジストリーである場合は、そのレジストリーへのアクセスをセットアップする必要があります。 - ビルド出力のイメージを保管する場所に関するレジストリー情報を指定します。 既存のレジストリ・シークレットを選択するか、新しいものを作成してください。 アカウント内のContainer Registryインスタンスにイメージを作成する場合は、
Code Engine managed secretを選択して、Code Engineにシークレットを作成して管理させることができます。 - イメージの名前空間、名前、タグを選択します。 アカウント内の IBM Cloud Container Registry インスタンスにイメージをビルドする場合は、既存の名前空間を選択するか、Code Engine に名前空間を作成して管理させることができます。
- 「完了 (Done)」 をクリックします。
- アプリのランタイム設定または環境変数に変更を加えます。 これらのオプションについて詳しくは、アプリのエンドポイント可視性のオプション および アプリをデプロイするためのオプションを参照してください。
- 「作成」 をクリックします。
- ビルド実行が実行されると、ビルドされたコンテナー・イメージが Container Registry に送信され、アプリケーションが自動的にそのイメージをプルしてデプロイします。 アプリケーションの状況が**「準備完了 (Ready)」**に変わったら、アプリケーションをテストできます。 **「アプリケーションのテスト (Test application)」をクリックしてから、「アプリケーションのテスト (Test application)」ペインで「要求の送信」をクリックします。 Web ページでアプリケーションを開くには、「アプリケーション URL (Application URL)」**をクリックします。
完了したビルド実行は、最終的に自動的に削除されます。 ビルド実行がビルド構成に基づいている場合、ビルド実行が成功すると、このビルド実行は 3 時間後に削除されます。 ビルドの実行が失敗した場合、そのビルドは48時間後に削除されます。
アプリケーションのデプロイが完了したので、アプリケーション・リビジョンと実行中のインスタンスに関する情報、および構成の詳細を表示できます。
CLI を使用したリポジトリー・ソース・コードからのアプリのデプロイ
CLI を使用して、リポジトリー・ソース・コードからアプリケーションを直接デプロイできます。 **app create**コマンドを使用して、Git リポジトリー・ソースからイメージをビルドし、このビルドされたイメージを参照するようにアプリケーションをデプロイします。
開始前に
- Code Engine の CLI 環境をセットアップします。
- プロジェクトを作成して使用できるようにします。
このシナリオでは、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 で表示できるのは、このビルド実行に関する情報のみです。 このビルド実行をコンソールで表示することはできません。
次のステップ
-
アプリがデプロイされた後、URL を使用してアプリへのアクセスを実行します。
-
カスタム・ドメイン・マッピング を作成して、それをアプリに割り当てることができます。 カスタム・ドメイン・ネームを使用して複数のリージョンにアプリをデプロイする方法について詳しくは、 高可用性アプリケーションの構成 を参照してください。
-
アプリがデプロイされたところで、アプリをイベント駆動型にすることを検討してみてください。 イベント・サブスクリプションを使用することで、 定期的なスケジュール によってアプリをトリガーしたり、 ファイル・アップロード や Kafka メッセージ などのイベントに対応するようにアプリを設定したりできます。
アプリがデプロイされると、アプリの作成方法や以前の更新方法に関係なく、以下の任意の方法でデプロイされたアプリの更新および参照されるコードの更新を行うことができます。
-
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 リポジトリをご覧ください。