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 ツールチェーンに対して以下のオプションを設定できます。
| オプション | 説明 |
|---|---|
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-strategy が dockerfile に設定されている場合にのみ選択できます。 有効な値は true と false です。 |
code-engine-project |
このアプリケーションを含むプロジェクト。 |
cpu |
アプリケーションのインスタンスのために設定する CPU の量。 有効な値については、サポートされるメモリーと CPU の組み合わせを参照してください。 デフォルト値は1です。 |
deployment-type |
デプロイメントのタイプを指定します。 有効な値は application および job です。 |
ephemeral-storage |
アプリケーションのインスタンスのために設定する一時ストレージの量。 メガバイトの場合は M、ギガバイトの場合は G を使用します。 |
git-token |
Git リポジトリーのアクセス・トークン。 |
image-name |
このアプリケーションに使用するイメージの名前。 形式は REGISTRY/NAMESPACE/REPOSITORY:TAG です。REGISTRY と TAG はオプションです。 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 サービス・インスタンスをアプリケーションにバインドするサービス・バインディング。 この値は "{"<SERVICE_INSTANCE_NAME>": "<BINDING_PREFIX>"}" の形式である。 例えば、"{"object-store-rg-e": "CLOUD_OBJECT_STORAGE"} です。 この値は base64でなければなりません。 |
その他のオプションについては、ツールチェーン設定でパイプラインの 環境プロパティー を参照してください。
ツールチェーンの問題のトラブルシューティング
以下のトピックを使用して、 Code Engine ツールチェーンのトラブルシューティングを行います。