Skip to main content

ビットライズの Docker コンテナについて

概要

コンテナサポートにより、任意のDockerコンテナイメージをワークフロー内のステップグループの実行環境として使用できます。また、バックグラウンドサービスの実行も可能です。たとえば、高度なテストシナリオを実行する場合などに使用できます

任意の Docker イメージを Steps の実行環境として、またはバックグラウンドサービスとして使用できます。データベース、HTTP サーバー、またはテストに必要な依存関係を構築できます。

コンテナを使用することには、次のような利点が考えられます。

  • ビルド環境を完全に制御できます。Bitriseがサポートするのを待たずに、どんなツールでも、どんなバージョンでもインストールできます

  • 依存関係はイメージ内にあります。これにより、ビルド時間が短縮され、複雑さが軽減されます。ビルド中にインストールする必要はありません。これにより、ビルド時間が短縮され、複雑さが軽減されます。

  • ローカルで使用するのと同じ環境を使用して、アプリのテストとビルドを行うことができます。

Bitriseでは2種類のコンテナがサポートされています。

  • 実行コンテナ: 実行コンテナ内でステップまたはステップバンドルを実行できます。これにより、簡単かつクリーンで信頼性の高い方法でビルド環境をプロビジョニングできます

  • サービスコンテナ: サービスコンテナを定義してステップまたはステップバンドルで参照すると、ステップまたはステップバンドルの実行中にバックグラウンドでサービスを実行できます。サービスの例としては、HTTP サーバ、データベース、または分散環境で実行したいその他の種類の実行プログラムなどがあります

リナックスのみ

これは Linux のみの機能で、macOS ベースの環境はサポートされていません。

コンテナネスティングルール

ステップとステップバンドルはどちらも独自のコンテナ設定をサポートしています。これにより自然な階層が作成されます。つまり、ステップは親バンドルとは異なるコンテナを定義でき、バンドルを他のバンドル内にネストできます。各レベルは以前のものをオーバーライドまたは拡張できます

異なるレベルの構成をどのように組み合わせるかは、次の 2 つのルールによって決まります。

  • 実行コンテナは最も有利な継承に従います。各ステップは、階層内で最も近い場所に定義されている実行コンテナを使用します。つまり、独自の定義が優先され、次に親バンドルの定義が優先され、次に親バンドルの定義が優先され、ステップごとにアクティブな実行コンテナは 1 つだけです。

  • サービスコンテナは相乗的に蓄積されます。1 つのステップは、最も近いレベルのサービスコンテナだけでなく、その祖先のあらゆるレベルからサービスコンテナを継承します。ネスティングが深ければ深いほど、ステップに含まれるサービスコンテナの数が増えます。

Docker 認証資格情報

コンテナを使用する際は、Docker 認証情報でログインすることをおすすめします。そのためには、コンテナの設定時に Docker 認証情報を入力する必要があります

  • レジストリサーバー:完全修飾レジストリサーバーの URL である必要があります。サーバーが既にイメージリファレンスの一部になっている場合は省略できます。

  • [ユーザー名]。

  • パスワード。

これらの認証情報は次のように保存する必要があります シークレット。これらは実行時に使用されます docker login コンテナーセットアップ中のコマンド。

コンテナリソースオプション

ザルdocker container create(または省略形:docker create) コマンドは、指定されたイメージから新しいコンテナーを起動せずに作成します。Bitrise のコンテナ設定で、コマンドに追加のオプションを指定できます。ほとんどのオプションは以下と共有されています docker run コマンド。

Bitriseはコンテナ作成のほとんどのオプションをサポートしています。唯一の例外は以下のとおりです。

  • --network

  • --volume (-v)

  • --entrypoint

利用可能なすべてのオプションについては、以下をご覧ください。 Docker コンテナ作成