メインコンテンツまでスキップ

サービスコンテナー

サービスコンテナはDockerのコンテナで、BitriseのWorkflow中にアプリのテストや操作に必要なサービスをホストします。サービスはバックグラウンドで実行され、すべてのStepsが終了するとコンテナはクリーンアップされます。

サービスコンテナを定義する際に必要な項目は次のとおりです。

  • コンテナのID。

  • コンテナのタイプ: service。

  • サービスのイメージ名とバージョン。

    イメージの取得

    任意のパブリックなDockerイメージをDocker Hubから使用できます。

その後、StepまたはStep bundle内でコンテナを参照できます。これらのStepsまたはStep bundlesの実行中に、コンテナが実行されます。

詳細な設定オプションについては、Docker container propertiesをご覧ください。

サービスコンテナの定義Click to copy link​

containerプロパティを使用して、Bitrise Workflows用にサービスコンテナを定義します。コンテナはWorkflow Editorで定義することも、設定YAMLファイルに直接記述することもできます。

サービスコンテナを1つ以上定義すると、Stepの実行中にバックグラウンドサービスを実行できます。詳しくはサービスコンテナの実行をご覧ください。

  1. Bitrise にアクセスして Log in、左側の Bitrise CI を選択し、プロジェクトを選択します。

  2. メインページの Workflows ボタンをクリックします。

  3. 左側でContainersを選択します。

  4. Service containersタブに移動し、Add containerをクリックします。

  5. コンテナに必要なプロパティを設定します。設定項目は次のとおりです。

    • Unique ID: このIDは、設定YAMLファイルでコンテナを参照する際に使用します。

    • Image: Dockerイメージの名前とバージョン。Docker Hubにあるイメージや、他のレジストリのイメージを使用できます。

      Docker Hubのイメージの場合は[name]:[version]形式を使用します。他のレジストリの場合は[registry server]/[owner]/[name]:[version]を使用します。

    SCR-20260313-ptnr.png

  6. 必要に応じて、Portsフィールドに[HostPort01]:[ContainerPort01]形式でポートマッピングを追加します。

    ポートの公開とポートマッピングについて詳しくは、Dockerの公式ドキュメントをご覧ください。

  7. Show more optionsをクリックすると、Dockerの認証情報、コンテナのEnvironment Variables、Docker create optionsにアクセスできます。

  8. 必要に応じて、Dockerの認証情報を設定します。

    この認証情報はdocker loginコマンドで使用されます。設定できる項目は次のとおりです。

    • Registry server: 完全修飾されたレジストリサーバーのURLを指定します。イメージ参照にすでにサーバーが含まれている場合、これは任意です。
    • Username。
    • Password。
    ヒント

    Dockerの認証情報を設定に渡すには、secretsを使用する必要があります。

  9. 必要に応じて、Docker create optionsフィールドにオプションを追加します。

    これらはDockerコンテナのリソースオプションで、docker container createコマンドに渡されるパラメーターです。

    使用できるすべてのオプションの一覧については、Dockerのドキュメントをご覧ください。

  10. 完了したら、Create containerをクリックします。

サービスコンテナの実行Click to copy link​

サービスコンテナは、StepまたはStep bundleの実行中に実行できます。StepまたはStep bundleの設定でコンテナを参照すると、Stepの実行中に定義済みのサービスがバックグラウンドで実行されます。

次のことができます。

  • Workflow内のStepまたはStep bundleでコンテナを参照する。そのWorkflowが実行されると、参照先のコンテナがバックグラウンドサービスを実行します。
  • Step bundleの定義でコンテナを参照する。そのStep bundleがWorkflowに追加されると、それらのサービスコンテナが実行されます。
コンテナのネスト

コンテナは異なるレベルで定義できます。StepsとStep bundlesはどちらも独自のコンテナ設定をサポートしています。これにより、レベル間で階層が形成されます。この階層を管理する原則については、Container nesting rulesをご覧ください。

  1. Workflow Editorを開きます。

  2. Workflow内でStepまたはStep bundleを選択します。

    または、左側のナビゲーションメニューでStep Bundlesを選択し、Step bundleの定義でコンテナを設定することもできます。その後のStepsは同じです。

    バンドルの定義

    デフォルトでは、Step bundleはバンドルの定義で定義されているすべてのサービスコンテナを実行します。特定のWorkflowでバンドルにサービスコンテナを設定すると、そのリストはバンドル定義のサービスコンテナを完全に置き換えます。バンドル定義のコンテナを自分のコンテナと一緒に実行し続けたい場合は、Workflowレベルのリストに再度それらを含めてください。

  3. Containersを選択します。

  4. Service ContainerでAdd containerをクリックし、メニューからコンテナを選択します。

    複数のコンテナを追加できます。

  5. サービスコンテナがすでに実行中でも、コンテナのクリーンなインスタンスでサービスを実行したい場合は、Recreate containerオプションをオンにします。

    デフォルトでは、StepまたはStep bundleは、すでに実行中のコンテナがあればそれを使用します。

サービスコンテナのネットワークアクセスClick to copy link​

サービスコンテナはすべて、bitriseという名前の同じdocker networkに参加します。これにより、他のすべてのサービスコンテナやStepの実行コンテナからアクセスできるようになります。

独自のバックグラウンドワーカーの実行

Dockerコマンドを自分で実行するか、docker-composeのようなものを使用することで、独自のバックグラウンドワーカーを実行できます。ただし、必ず同じネットワークを使用してください。

StepグループがStepの実行コンテナを使用していない場合でも、サービスコンテナを使用できます。唯一の違いは、サービスへのアクセス方法です。

Stepの実行コンテナを使用している場合は、<service_id>(サービスの名前)を使用してアクセスします。例: http://postgres:5432。

Stepの実行コンテナを使用していない場合は、localhostを使用してサービスにアクセスします。例: http://localhost:5432。