実行コンテナー
Step実行コンテナは、任意のBitriseプロジェクトに対して定義できます。コンテナは設定ファイルのトップレベルで定義し、StepまたはStep bundle内で参照します。参照された実行コンテナ内で、StepまたはStep bundleが実行されます。同じWorkflowまたはPipeline内であれば、異なるStepsとStep bundlesを異なる実行コンテナで実行できます。
コンテナは個々のStepsおよびStep bundlesに適用され、WorkflowsまたはPipelines全体には適用されません。
実行コンテナを定義するには、以下を設定する必要があります。
-
コンテナのID。このコンテナを参照する際に使用します。
-
コンテナのタイプ:
execution。 -
使用するDockerイメージの名前とバージョン。
イメージの取得Docker Hubから、任意のパブリックDockerイメージを使用できます。
コンテナを定義した後は、StepまたはStep bundle内で参照できます。参照されたコンテナは、ビルド中にその 中で実行されます。
コンテナ間のファイル共有Click to copy link
異なるコンテナとホストのBitrise環境間でファイル共有を有効にするため、BitriseでDockerコンテナを実行するたびに、以下のフォルダが共有されます。
/bitrise/root/.bitrise:/root/.bitrise/tmp:/tmp
デフォルトでは、Bitriseは作業ディレクトリとして/bitrise/srcを使用します。これらのフォルダのいずれかに作成されたものはすべて、すべてのStep実行コンテナで利用できます。
これはStep実行コンテナにのみ適用されます。サービスコンテナとのボリュームおよびファイル共有はサポートされていません。
実行コンテナの定義Click to copy link
実行コンテナを定義するには、containerプロパティを使用します。Workflow Editor上で定義することも、設定YAMLファイルに直接定義することもできます。
少なくとも1つの実行コンテナを定義すると、その中でStepsおよびStep bundlesを実行できます。詳細は実行コンテナの実行を参照してください。
- Workflow Editor
- Configuration YAML
-
Bitrise にアクセスして Log in、左側の Bitrise CI を選択し、プロジェクトを選択します。
-
メインページの Workflows ボタンをクリックします。
-
左側でContainersを選択します。
-
Execution containersタブに移動し、Add containerをクリックします。

-
コンテナに必要なプロパティを設 定します。以下のとおりです。
-
Unique ID: このIDは、設定YAMLファイルでコンテナを参照する際に使用します。
-
Image: Dockerイメージの名前とバージョン。Docker Hubにある任意のイメージ、または他のレジストリを使用できます。
Docker Hubのイメージの場合は
[name]:[version]形式を使用します。他のレジストリの場合は[registry server]/[owner]/[name]:[version]を使用します。
-
-
必要に応じて、Portsフィールドに
[HostPort01]:[ContainerPort01]形式でポートマッピングを追加します。ポートの公開とポートマッピングの詳細については、Dockerの公式ドキュメントを参照してください。
-
more optionsを表示をクリックすると、Dockerの認証情報、コンテナのEnvironment Variables、Docker create optionsにアクセスできます。
-
必要に応じて、Dockerの認証情報を設定します。
この認証情報は
docker loginコマンドで使用されます。以下を設定できます。- Registry server: 完全修飾されたレジストリサーバーのURLを指定します。サーバーがすでにイメージ参照に含まれている場合、これは省略可能です。
- Username。
- Password。
ヒントDockerの認証情報を設定に渡すには、シークレットを使用する必要があります。
-
必要に応じて、Docker create optionsフィールドにオプションを追加します。
これらはDockerコンテナのリソースオプションであり、
docker container createコマンドに渡されるパラメータです。
使用可能なすべてのオプションの一覧については、Dockerのドキュメントを参照してください。
-
完了したら、Createコンテナをクリックします。
-
設定YAMLのトップレベルに
containersプロパティを追加します。YAML構文リファレンス詳細なYAML構文リファレンスについては、Dockerコンテナのプロパティを参照してください。
-
コンテナのIDを設定します。
設定内で一意である必要があります。このIDは、StepsまたはStep bundlesでコンテナを参照する際に使用します。
containers:node-18: -
コンテナに必要なプロパティを設定します。以下のとおりです。
name:version形式でのDockerイメージの名前とバージョン。Docker Hubにある任意のイメージを使用できます。- コンテナタイプ:
execution。
containers:node-21:type: executionimage: node:21.6node-18:type: executionimage: node:18 -
必要に応じて、
[HostPort01]:[ContainerPort01]形式でポートマッピングを設定します。ポートの公開とポートマッピングの詳細については、Dockerの公式ドキュメントを参照してください。
containers:node-21:type: executionimage: node:21.6ports:- 3000:3000 -
必要に応じて、Dockerの認証情報を設定します。
この認証情報は
docker loginコマンドで使用されます。以下を設定できます。- サーバー: 完全修飾されたレジストリサーバーのURLを指定します。サーバーがすでにイメージ参照に含まれている場合、これは省略可能です。
- ユーザー名。
- パスワード。
ヒントDockerの認証情報を設定に渡すには、シークレットの使用をお勧めします。
containers:node-21:type: executionimage: node:21.6credentials:username: $DOCKER_USERNAMEpassword: $DOCKER_PASSWORDserver: us-central1-docker.pkg.dev -
必要に応じて、
optionsプロパティを使用して、追加のDockerコンテナのリソースオプション(docker container createコマンドに渡されるパラメータ)を設定します。この例では、サービスにヘルスチェックを設定しています。
containers:node-21:type: executionimage: node:21.6options: >---health-cmd pg_isready--health-interval 10s--health-timeout 5s--health-retries 5使用可能なすべてのオプションの一覧については、Dockerのドキュメントを参照してください。
実行コンテナの実行Click to copy link
実行コンテナ内でStepまたはStep bundleを実行できます。そのためには、StepまたはStep bundleの設定内で定義済みのコンテナを参照します。
次のことができます。
- Workflow内のStepまたはStep bundleでコンテナを参照する。そのWorkflowが実行されると、StepまたはStep bundleはそのコンテナ内で実行されます。
- Step bundleの定義でコンテナを参照する。そのStep bundleがWorkflowに追加されると、Workflow内でオーバーライドしない限り、デフォルトでそのコンテナ内で実行されます。
このガイドでは、両方の方法について説明します。
コンテナは異なるレベルで定義できます。StepsとStep bundlesはどちらも独自のコンテナ設定をサポートします。これにより、異なるレベル間で階層が生まれます。この階層を管理する原則については、コンテナのネストルールを参照してください。
- Workflow Editor
- Configuration YAML
-
Workflow Editorを開きます。
-
Workflow内でStepまたはStep bundleを選択します。
または、左側のナビゲーションメニューでStep Bundlesを選択し、Step bundleの定義でコンテナを設定することもできます。以降の手順は同じです。
バンドル定義のオーバーライドデフォルトでは、Step bundleの定義でコンテナを設定すると、Step bundleを追加した任意のWorkflowで、参照先のコンテナ内で実行されます。
ただし、Step bundleインスタンス(Workflow内のStep bundle)でコンテナを設定した場合、Step bundleの定義で設定されたコンテナよりも優先されます。
-
Containersを選択します。
-
実行コンテナの下で、Add containerをクリックし、メニューからコンテナを選択します。
-
コンテナがすでに実行されていて、クリーンなインスタンスを実行したい場合は、Recreate containerオプションを選択します。
デフォルトでは、StepまたはStep bundleは、すでに実行中のコンテナがあればそれを使用します。
-
設定YAMLファイルを開き、Workflowを見つけます。
-
必要なStepまたはStep bundleに、コンテナ名を指定した
execution_containerプロパティを追加します。参照できる実行コンテナは1つのみです。Workflow形式でStepに実行コンテナを追加する場合:
workflows:ci:steps:- git-clone: {}- script:execution_container: node-21Workflow内のStep bundleに実行コンテナを追加する場合:
workflows:ci:steps:- git-clone: {}- script: {}- bundle::test-bundle-id:execution_container: node-21Step bundleの定義に実行コンテナを追加する場合:
step_bundles:test-bundle-id:steps:- git-clone@8: {}- restore-cache@2: {}execution_container: test-containerバンドル定義のオーバーライドデフォルトでは、Step bundleを追加した任意のWorkflowで、参照先のコンテナ内で実行されます。ただし、Workflow内のStep bundleに対してコンテナを設定した場合、Step bundleの定義で設定されたコンテナよりも優先されます。
-
コンテナがすでに実行されていて、クリーンなインスタンスを実行したい場合は、
recreateプロパティをtrueに設定します。デフォルトでは、StepまたはStep bundleは、すでに実行中のコンテナがあればそれを使用します。デフォルトの動作を変更するには、このプロパティを使用します。
workflows:ci:steps:- git-clone: {}- script:execution_container:node:21- bundle::test-bundle-id:execution_container:node-21:recreate: true