GitHub

Android/Linux/Docker 環境

ハードウェア

現在のハードウェアの仕様は以下のとおりです

環境

BitriseはQuay上で発行された標準のDockerイメージとGitHubにある関連したDockerfileを使用します。

Dockerfileとは何ですか?

Dockerfileとはdockerにおいてのイメージ・環境が記載されており、イメージをビルドするのに直接使用される記述ファイルです。

Right now we have four docker images, built on top of each other:

Bitriseには現時点で4つのdockerイメージがあります。

Bitrise ベース・イメージ(GitHub/Quay

ベースAndroidイメージ(GitHub / Quay)

Android NDKイメージ (GitHub / Quay)

Android NDK LTS イメージ (GitHub / Quay)

Docker と 仮想マシン

新しいコンテナ上だけでなく、新しい仮想マシン上でも全てのビルドが走行されます。その仮想マシンはビルド終了後すぐに破壊されます。これはDockerと環境全体のフル管理を提供します。

スタックに基づいたDocker上でビルドを開始する際、あなたのコンテナへ/var/run/docker.sock ソケットをボリュームマウントします。 (docker run -v /var/run/docker.sock:/var/run/docker.sock ...の呼び出し方に類似しています。 このアクセスの付与についての方法はこちらにて確認できます。)

Dockerバイナリのインストール

dockerバイナリはベースDockerイメージ内にてインストールされている必要があります。Dockerはシングルバイナリソリューションから装填された構成への移動が開始され、dockerバイナリを単にシェアするだけでは不十分だからです。

BitriseがDockerイメージ一つ一つにDockerをインストールするので、Bitriseのイメージを使用する、またはBitriseのDockerイメージ上にご自身のイメージを基礎づける場合は何もする必要がありません。

これであなたはコンテナ内でdockerにアクセスができ、docker-composeのようなdockerを使用する他のツールを使うことができます。例えば、docker-composeを使用するウェブサイトプロジェクトの設計やテスト走行、他の自動化された作業が可能となります。

docker info, docker build, docker run, docker login, docker push をご自身のマシンに呼び出すことができ、正確に行うことができます。

共有ボリューム

ビルド内でのdockerの走らせ方とボリュームの共有

あなたのビルド内でdockerを走らせたりボリュームを共有する場合、ベースDockerコンテナ(ビルドが動作しているコンテナ)を使って共有されたボリュームのみが共有されます。これはdockerによるボリューム共有の処理方法からなります。/bitrise 以下の全てのものがボリュームとしてマウントされますが、--volume マッピングを使用した他のパスでは保証されません。

これはボリュームマウントするうえで、標準のパスや関連したパスを使用する場合、デフォルトのソースコードディレクトリが/bitrise内に位置していると動作します(BitriseのDockerイメージ内はデフォルトで/bitrise/srcになっています)。

ソースコードディレクトリを/bitrise外部に変更したり、/bitriseの外部に絶対パスを使用したフォルダのマウントを行いたい場合、動作しません