Android / Linux / Docker環境

概要

BitriseのAndroidスタックは、Dockerイメージから作成されたLinuxベースの仮想マシンで実行されます。すべての画像ファイルはGitHubにあります。

標準を使用します Docker 画像、公開 岸壁、および関連 Dockerfile これはGitHubで見つけることができます(以下を参照)。

Dockerfileとは何ですか?

NS Dockerfile Dockerイメージ/環境を記述し、Dockerイメージを構築するために直接使用されるファイルです。

プレインストールされたツール

すべてのスタックには、多数のプリインストールされたツールが用意されています。 Bitriseスタックにプレインストールされたツール

現在、4つのDockerイメージがあり、それらは互いに積み重ねられています。

Bitriseベース画像 ((リンク)。

  • 画像名ID: quay.io/bitriseio/bitrise-base-20.04

  • Android以外のすべてのツールと環境設定が含まれています。

  • これは最小の画像であるため、ローカルでも使用する場合は、Android以外のプロジェクトでベース画像として使用するのに理想的です。

  • RubyGoPythongit そしてその bitriseコマンドラインツール すべてプレインストールされており、すぐに使用できます。

  • OS: Ubuntu 20.04、64ビット。

  • 関連するをチェックしてください Dockerfile どこ この画像には何がプリインストールされているかがわかります。

ベースのAndroid画像 ((リンク)。

  • 画像名ID: quay.io/bitriseio/android-20.04

  • Android固有のツールと環境でBitriseBaseイメージを拡張します。

  • 複数のAndroidSDK、ビルドツール、システムイメージのバージョンがプリインストールされています。 gradlemaven

  • あなたは使用することができます $ANDROID_HOME プリインストールされたAndroidSDKの場所を指す環境変数。

  • 関連するをチェックしてください Dockerfile どこ この画像には何がプリインストールされているかがわかります。

AndroidNDKイメージ ((リンク)。

  • 画像名ID: quay.io/bitriseio/android-ndk-20.04

  • ベースのAndroidイメージに基づいて構築され、最新のAndroidNDKで拡張されています。

  • あなたは使用することができます $ANDROID_NDK_HOME プレインストールされたAndroidNDKの場所を指す環境変数であり、 $PATH

  • 関連するをチェックしてください Dockerfile どこ この画像には何がプリインストールされているかがわかります。

すべてのビルドは新しいVMで実行されます。 新しいコンテナだけではありません。 VMはビルド直後に破棄されます。これにより、完全な制御が可能になります Docker そして環境全体。

Dockerベースのスタックでビルドが開始されると、ボリュームマウントが行われます。 /var/run/docker.sock コンテナにソケットを挿入します(呼び出しと同様) docker run -v /var/run/docker.sock:/var/run/docker.sock ...。このアクセス許可方法についての説明を見つけることができます ここ)。

NS docker dockerは単一バイナリソリューションから動的にロードされたコンポーネントへの移行を開始し、単純に共有するため、バイナリはベースDockerイメージ内にインストールする必要があります。 docker バイナリはもう十分ではありません。

すべてのDockerイメージにDockerをインストールするため、イメージを使用する場合、または独自のイメージをDockerイメージに基づいて使用する場合は、何もする必要はありません。

これは、あなたがにアクセスできることを意味します docker コンテナ内にあり、dockerを使用する他のツールを使用できます。 docker-compose。たとえば、を使用してWebサイトプロジェクトでテストやその他の自動化を構成および実行できます。 docker-compose

あなたは呼び出すことができます docker infodocker builddocker rundocker logindocker push 自分のマシンでのやり方とまったく同じです。

共有ボリューム

走りたいなら docker ビルドボリュームと共有ボリュームでは、ベースDockerコンテナー(ビルドが実行されているコンテナー)と共有されるボリュームのみを共有できることに注意してください。これはどのように docker ボリューム共有を処理します。下のすべて /bitrise ボリュームとしてマウントできますが、他のパスが動作することが保証されていません --volume マッピング。

これは、標準パスを使用し、相対パスを使用してボリュームをマウントする場合、デフォルトのソースコードディレクトリが内部にあるため、期待どおりに機能することを意味します。 /bitrise (デフォルトでは /bitrise/src Dockerイメージ内)。

ただし、機能しないのは、ソースコードディレクトリを外部にあるように変更した場合です。 /bitrise、または絶対パスが外部にあるフォルダをマウントしたい /bitrise