Docker コンテナの起動
Incredibuild のイメージがホストマシンに保存されたら、イメージを実行し、それをベースにしたコンテナを起動するために、docker run コマンドを使用する必要があります。
> Incredibuild Docker イメージをコンテナとして実行
-
PowerShell またはターミナルで以下のコマンドを入力して、Incredibuild Docker イメージに基づいたコンテナを起動します。
コピーdocker run --cpus <Max_No._of_Cores_to_Use>
-e Coordinator=<Coordinator_Machine_IP_Adddress_or_Hostname>
-e CoordinatorPort=<Coordinator_Port_No.>
-e BuildServicePort=<Agent_Port_No._for_Coordinator_Communication>
-e BuildHelperPort=<First_Agent_Port_No._in_a_Range_for Communicating_with_the_Agent_Cores>"
-it
-p <Host_Machine_Port_No._mapped to>:<BuildServicePort No._in the_Container>/tcp
-p <Start-End_Port_Range_in the Host_Machine_mapped_to>:
<Start-End_Port_Range_for_the_Agent_Cores_in_the Container>/tcp
<IncrediBuild_Image>
コマンドの詳細:
-
--cpus [オプション] - コンテナエージェントが使用する CPU コアの最大数です。デフォルトは「2」コアです。数値が指定されていない場合は、デフォルトの数値が有効になります。たとえば、Agent で 8 コア以下を使用する場合は、 --cpus 8 と入力します。この CPU 数値を設定するときは、使用する CPU コアの数、ホスト マシンのコア数、コンテナに割り当てたい使用可能なコアの数、このホスト マシンで追加の Incredibuild コンテナを実行するかどうか考慮してください。
-
-e Coordinator= [必須] - コンテナエージェントと通信する Coordinator の IP アドレスまたはホスト名です。例えば、IP アドレスが 172.0.0.0 の Coordinator に Agent を接続するには、-e Coordinator=172.0.0.0のように入力します。
-
-e CoordinatorPort= [オプション] - Agent との通信に使用する Coordinator ポート番号です。デフォルトのポート番号は「31104」です。ほかに指定がない場合はたとえば、エージェントとの通信に Coordinator マシンのポート 20001 を使用するには、次のように入力します。-e CoordinatorPort=20001.
-
-e BuildServicePort= [オプション] - Coordinator との通信に使用する Agent ポート番号です。デフォルトのポート番号は「31105」です。ほかに指定がない場合はデフォルトが適用されます。例えば、エージェントとコーディネータ間の通信にコンテナ上のポート 40001 を割り当てるには、 -e BuildServicePort=40001と入力します。
-
-e BuildHelperPort= [オプション] - Initiator とコンテナエージェントコアの間の通信のための、ポート範囲内の最初の Agent ポート番号です。コンテナ Agent の利用可能なコアに対して、連続してポートが開放されていなければなりません。例えば、最初のポート番号が「3200」で Agent が 4 コアの場合、3 つの連続するポート (「3201」「3202」「3203」) を開放する必要があります。BuildHelper のデフォルトのポート番号は「31106」です。ほかに指定がない場合はデフォルトのポートを使用します。範囲に含まれる利用可能な Agent コアの数は、--cpus パラメータの値に依存します。例えば、ココンテナエージェントの 4 コアとの通信にコンテナ上のポート 32000 ~ 32003 を割り当てるには、-e BuildHelperPort=32000のように入力します
-
-it [必須] - 一般的な docker run オプションで、TTY を使ってコンテナにログインできるようにします。。
-
-p <Host_Machine_Port_No._mapped to>:<BuildServicePort No.>/tcp [Mandatory] - ポート番号に対するホストマシンの物理オープンポートのマッピングを指定します。。Coordinator と通信するためにコンテナ内の Agent にはオープン ポートが必要です。Coordinator マシンと通信するには、このポートをホストマシンのオープン ポートに対応付ける必要があります。たとえば、Coordinator との通信で、ホストマシン上のポート 30044 をコンテナ上のポート 40001 にマッピングする場合は、-p 30044:40001/tcpのように入力します。注意: BuildService のポート番号を指定しなかった場合は、デフォルトのポート番号「31105」を入力する必要があります31105。例:-p 30044:31105/tcp
-
-p <Start-End_Port_Range_in the Host_Machine_mapped_to>:<Start-End_Port_Range_for_the_Agent_Cores_in_the Container>/tcp -ホストマシンの物理ポート範囲とコンテナの BuildServicePort のポート範囲とのマッピングを指定します。Initiator とコンテナ Agent コアの間で通信するためには、コンテナ内で開放されたポート範囲とホストマシンのポート範囲を対応付ける必要があります。ホスト マシンとコンテナのこれらのポート範囲は同じである必要があります。例えば、コンテナエージェント の 4 コアとの通信では、ホストマシンのポート範囲 32000-32003 をコンテナのポート範囲 32000-32003 にマップするために、-p 32000-32003:32000-32003/tcpのように入力します。注意: BuildService のポート番号を指定しなかった場合は、デフォルトのポート範囲の最初の番号「31106」を入力する必要があります例:-p 31106-31109:31106-31109/tcp
-
<Incredibuild_Image> [必須] - マシンにダウンロードされたIncredibuildイメージの名前です。例:Incredibuild:9.5.0
例えば、ターミナルで以下のコマンドを入力し、アクティブなAgentを持つIncredibuildコンテナを起動した場合です。
docker run --cpus 4
-e Coordinator=IncrediBuild1
-e CoordinatorPort=31104
-e BuildServicePort=31105
-e BuildHelperPort=31106
-it
-p 31105:31105/tcp
-p 31106-31109:31106-31109/tcp
incredibuild/9.5.0
コマンドの詳細:
-
--cpus - コンテナエージェントが使用できる最大コア数は、4コアです。
-
-e Coordinator= - Agent は、ホスト名がIncredibuild1 である Coordinator と通信します。
-
-e CoordinatorPort= - Agent との通信に使用する Coordinator ポート番号は31104です。
-
-e BuildServicePort= - Coordinator との通信に使用する Agent ポート番号は31105です
-
-e BuildHelperPort= - Agentコアと通信するためのポート範囲における、最初のAgentポート番号は31106です。Agent は最大 4 コアを使用するためコンテナ内でさらに 3 つのポート (31107、31108、31109) を開放する必要があります。
-
-it - generaldocker run TTYを使用してコンテナにログインするためのオプションです。
-
-p 31105:31105/tcp - ホストマシンのポート番号31105 は、コンテナエージェント と Coordinator 間の通信用に、コンテナのポート番号31105 にマッピングされています。
-
-p 31106-31109:31106-31109/tcp - ポート範囲31106-31109 は、コンテナ上のポート範囲31106-31109 にマッピングされ、コンテナエージェント コ アと Initiator 間の通信用に使用されます。
-
<Incredibuild_Image> - コンテナの起動に使用する Incredibuild イメージはIncredibuild/9.5.0です。
出力は次の通り:
Setting Coordinator to IncrediBuild1
Setting Coordinator Port to 31104
Setting BuildService Port to 31105
Setting BuildHelper Port to 31106
Starting IncrediBuild Agent Service
コンテナが起動すると、コンテナ化されたアクティブな Agent が Incredibuild 環境に追加されてこの新しい Agent は、docker run コマンドで詳細を入力した Coordinator にサブスクライブされ、コーディネーター モニターに表示されるようになります。

注意:
-
コンテナ Agent にはコンテナ ID とホスト名に基づく名前が付けられます。コンテナエージェント に意味のある名前を付けたい場合は、--hostname Docker オプションを使用してコンテナの内部ホスト名を指定し、それがコンテナエージェント名に明示されるようにします。
-
コンテナ Agent を Initiator として使用する場合は、ホストのファイルシステムやインストール環境は利用できません。これは、コンテナがホストから隔離されているためです。例えば、コンテナ Agent から Visual Studio プロジェクトをビルドしたい場合、コンテナに Visual Studio をインストールしてプロジェクトをコピーする必要があります。
-
Incredibuild コンテナを停止、削除、終了した場合、コンテナ Agent に割り当てられていたライセンスは自動的にライセンス プールに戻りません。コンテナ Agent のライセンスを解除して、別の Agent に再割り当てしたい場合は、次の手順でサブスクライブ解除する必要があります。
> コンテナ Agent からライセンスをサブスクライブ解除