Code Engine ワークロードと Continuous Delivery との統合

Continuous Deliveryを使用してツールチェーンを作成することにより、 IBM Cloud® Code Engine ワークロードのビルドとデプロイメントを自動化できます。 リポジトリーからソース・コードをプルしてから、アプリまたはジョブをビルドしてデプロイするツールチェーンを作成できます。 リポジトリー内のソース・コードを更新するたびに、ツールチェーンは自動的に更新されたコードをプルしてから、アプリまたはジョブをビルドして再デプロイします。

開始前に

ツールチェーンを開始する前に、

  • Code Engine プロジェクト を作成または識別します。 これらのリソースは、コンソールまたはCLIのいずれかを使用して作成できます。 詳しくは、 Code Engine プロジェクト を参照してください。

  • Continuous Delivery サービスのインスタンスを作成または識別します。

  • IBM Cloud Container Registry 名前空間を作成または識別します。 名前空間の作成について詳しくは、 IBM Cloud Container Registry サービスを参照してください。

ツールチェーンのアクセス権限の構成

ツールチェーンを使用してアプリまたはジョブをビルドおよびデプロイする場合は、IAM で以下の権限を設定します。

IBM Cloud Container Registry

  • リーダー: コンテナー・レジストリーからイメージをプルします。
  • ライター: 作成したイメージをターゲット名前空間にプッシュします。
  • マネージャー: 指定された名前空間が存在しない場合に作成します。
  • 管理者: アプリまたはジョブに使用する Code Engine レジストリー・シークレットをセットアップするために必要なサービス ID、ポリシー、および API キーを作成します。

Code Engine

  • 編集者: Code Engine プロジェクトにアクセスするか、存在しない場合は作成します。
  • ライター: Code Engine プロジェクト内のアプリ、ジョブ、およびシークレットを管理します。

リソース・グループ:

  • ビューアー: Code Engine プロジェクトが配置されているリソース・グループを表示します。

アプリで別の IBM Cloud サービスをバインドする場合は、以下の追加許可を設定する必要があります。

すべての ID およびアクセス対応サービス

  • 管理者: サービス ID、ポリシー、および API キーを作成して、 Code Engine サービス・アクセス・シークレットをセットアップします。これは、個々のサービスを Code Engine アプリまたはジョブに接続するためにサービス資格情報を維持するために使用されます。

ツールチェーンの作成

「ツールチェーン」ページ からツールチェーンを作成するには、 「ツールチェーンの作成」 を選択し、 Code Engine テンプレートを選択します。 チュートリアルを試すには、 Code Engineを使用したアプリの開発とデプロイ を参照してください。

ツールチェーンの Code Engine オプション

ci-pipeline Configuration を編集して 「環境プロパティー」 を選択することで、 Code Engine ツールチェーンに対して以下のオプションを設定できます。

Code Engine options in toolchain
オプション 説明
apikey このツールチェーンに使用される IBM Cloud API キー。
app-concurrency 1 つのインスタンスで同時に処理できる要求の最大数。 デフォルト値は 100です。
app-deployment-timeout ビルドの成功/失敗が決まるまで許容する時間 (秒単位)。
app-health-endpoint アプリの正常性エンドポイント (例: /health)。
app-max-scale このアプリケーションに使用できるインスタンスの最大数。 この値を0に設定すると、アプリケーションは必要に応じてスケーリングされます。 アプリケーションのスケーリングは、アプリケーションのプロジェクトのリソース割り当て量ごとのインスタンスによってのみ制限されます。 Code Engine の制限と割り当て量を参照してください。 デフォルト値は10です。
app-min-scale このアプリケーションに使用できるインスタンスの最小数。 このオプションは、必要がないときにはインスタンスを 1 つも実行しないようにする場合に役に立ちます。 この値はオプションです。 デフォルト値は 0です。
app-name アプリケーションの名前。 プロジェクト内で固有の名前を使用します。
app-port アプリケーションが着信接続をリッスンするポート。 形式は [NAME:]PORT です。[NAME:] はオプションです。 [NAME:] 指定された場合、有効な値は h2c または http1 です。 デフォルトでは、Code Engineはアプリが8080番ポートで着信接続をリッスンすることを想定している。
app-visibility アプリケーションの表示設定。 Valid values are public, private, and project. 可視性をpublicに設定することは、アプリがパブリック・インターネットから、またはCode Engineプロジェクト内のコンポーネントから要求を受信できることを意味します。 Code Engine アプリケーションの可視性のオプション を参照してください。
branch buildpacksファイルまたはDockerfileを含むリポジトリ内のブランチ。 デフォルト値は mainです。
build-size ビルドのサイズ。使用するリソースの量を決定します。 Valid values are small, medium, large, xlarge, and xxlarge. 詳しくは、ビルドのサイズの決定を参照してください。
build-strategy イメージのビルドに使用する戦略。 有効な値は dockerfile および buildpacks です。
build-timeout ビルド実行の成功/失敗が決まるまで許容する時間 (秒単位)。 デフォルトは 1200 秒。
build-use-native-docker ソースをコンテナー化するために Code Engine ビルドの代わりにネイティブ Docker ビルド機能を使用するためにオプトインするオプション・プロパティー。 この値は、 build-strategydockerfile に設定されている場合にのみ選択できます。 有効な値は truefalse です。
code-engine-project このアプリケーションを含むプロジェクト。
cpu アプリケーションのインスタンスのために設定する CPU の量。 有効な値については、サポートされるメモリーと CPU の組み合わせを参照してください。 デフォルト値は1です。
deployment-type デプロイメントのタイプを指定します。 有効な値は application および job です。
ephemeral-storage アプリケーションのインスタンスのために設定する一時ストレージの量。 メガバイトの場合は M、ギガバイトの場合は G を使用します。
git-token Git リポジトリーのアクセス・トークン。
image-name このアプリケーションに使用するイメージの名前。 形式は REGISTRY/NAMESPACE/REPOSITORY:TAG です。REGISTRYTAG はオプションです。 REGISTRY を指定しない場合、そのデフォルトは docker.io です。 TAG を指定しない場合、そのデフォルトは latest です。
memory アプリケーションのインスタンスに設定するメモリーの量。 メガバイトならM、ギガバイトならGを使う。 有効な値については、サポートされるメモリーと CPU の組み合わせを参照してください。 デフォルト値は4Gです。
path-to-context buildpacks ファイルまたは Dockerfile を含むリポジトリー内のディレクトリー。
path-to-dockerfile Dockerfile のパス。 このオプションは、名前が Dockerfile でない場合にのみ指定します。
pipeline-debug パイプライン・デバッグ・モード。 値は 0 または 1 デフォルトは 0 です。
region Code Engineプロジェクトがある地域。
registry-namespace ビルドされたイメージを保管するコンテナー・レジストリー名前空間。
registry-region コンテナー・レジストリーのリージョン。
resource-group Code Engine プロジェクトを含むリソース・グループ。
service-bindings IBM Cloud サービス・インスタンスをアプリケーションにバインドするサービス・バインディング。 この値は "{&quot;<SERVICE_INSTANCE_NAME>&quot;: &quot;<BINDING_PREFIX>&quot;}" の形式である。 例えば、"{&quot;object-store-rg-e&quot;: &quot;CLOUD_OBJECT_STORAGE&quot;} です。 この値は base64でなければなりません。

その他のオプションについては、ツールチェーン設定でパイプラインの 環境プロパティー を参照してください。

ツールチェーンの問題のトラブルシューティング

以下のトピックを使用して、 Code Engine ツールチェーンのトラブルシューティングを行います。