Docker の高速化
ここでは Incredibuild を Docker コンテナで使用する方法についてみていきます。Incredibuild を (コンテナではなく) ホスト マシンにインストールすると当該マシン上の任意のコンテナで使用できるようになります。一般的に Initiator マシンでの使用を想定しています。
Incredibuild は Docker コンテナの制限を考慮し、コンテナに割り当てられていないリソース (ホスト マシンの CPU コアなど) は使用しません。Docker コンテナで ib_console を使用してビルドを実行する際は --max-local-cores オプションを使用します。
Docker コンテナのホスト マシンに存在するすべてのリソースを使用したい場合は --no-cgroups オプションを使用します。
使用方法
ビルド実行時のコマンド docker を ib_docker に置き換えます。また、必要に応じて ib_console ビルド コマンドを使用します。-j の値は通常よりも大きい値に設定する必要があります。以下の例を参照してください。
通常のビルドで使用するコマンド:
sudo docker run -i -t -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -u 1000:1000 -v /home/xoreax/linux-2.6.34.14/:/home/xoreax/linux-2.6.34.14/ -w /home/xoreax/linux-2.6.34.14 1d070b96eb09 make -j 20
Incredibuild でビルドする場合のコマンド:
sudo /opt/incredibuild/bin/ib_docker run -i -t -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -u 1000:1000 -v /home/xoreax/linux-2.6.34.14/:/home/xoreax/linux-2.6.34.14/ -w /home/xoreax/linux-2.6.34.14 1d070b96eb09 ib_console --max-local-cores=6 make -j 80