概要
Unity ML-AgentsをDockerで実行するのにイメージをBuildする必要がありますが、Google Cloud Buildを利用するようにしてみました。
今回は、トリガーを利用せず、ローカルでコマンドを実行してビルドしてみました。
Google Cloud Buildについては以下をご参考ください。
Google Cloud Build
https://cloud.google.com/cloud-build/?hl=ja
Google Cloud Buildとは一体何者なのか
https://swet.dena.com/entry/2018/08/20/170836
手順
GCPのプロジェクトとgcloud
コマンドが利用できる前提となります。
cloudbuild.yamlの用意
Google Cloud BuildでDockerイメージが作成できるように
> mkdir 任意のディレクトリ > cd 任意のディレクトリ > touch cloudbuild.yaml
Dockerイメージのタグ名を直接記述していますが、トリガー起動する場合には$TAG_NAME
を利用することもできるようです。
利用できる変数については下記をご参考ください。
Cloud Build 変数値の置換
https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values
ビルドする際に、パスを./ml-agents
として、ML-Agentsのソースのみが含まれるようにしています。
unity_ml_agents
は任意の名称でOKです。
cloudbuild.yaml
steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/unity_ml_agents:0.5.0a', './ml-agents'] images: ['gcr.io/$PROJECT_ID/unity_ml_agents:0.5.0a']
Unity ML-Agentsの取得
サブモジュールとして取得します。
※ Google Cloud Buildのトリガーでビルドする場合、サブモジュールも取得してくれるのか未検証なので、トリガー機動する場合にはgit clone
で取得したほうが良いかもしれません。
> git submodule add https://github.com/Unity-Technologies/ml-agents.git
Unity ML-Agentsのバージョンを変更してビルドする場合は、以下のようにします。
> cd ml-agents > git tag (略) 0.3.1b 0.4.0 0.4.0a 0.4.0b 0.5.0 0.5.0a v0.1 > git checkout 0.5.0
ビルド実行
準備ができたので、Google Cloud Buildにジョブ開始のコマンドを実行します。
> cd 任意のディレクトリ > gcloud builds submit --config=cloudbuild.yaml . (略) DONE ------------------------------------------------------------------------------------------------------------------- ID CREATE_TIME DURATION SOURCE IMAGES STATUS xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 2018-10-02T05:15:41+00:00 6M38S gs://GCPのプロジェクトID_cloudbuild/source/1538457217.11-48d929e28e27491aa8a3fa4fde554756.tgz gcr.io/GCPのプロジェクトID/unity_ml_agents:0.5.0a SUCCESS
GCP管理コンソールでもジョブの実行が確認できます。
Google Container RegistryにもイメージがPushされていることも確認できます。
これでローカルにDockerがインストールされていなくても、イメージ作成ができるようになりました。
作成したイメージの利用については下記をご参考ください。
DockerでUnity ML-Agentsを動作させる(v0.5.0対応)
https://qiita.com/kai_kou/items/df3f3518a5a27b66f617
Google Kubernetes EngineでUnity ML-Agentsを動かしてみる(V0.5.0対応)
https://cloudpack.media/43540
参考
Google Cloud Build
https://cloud.google.com/cloud-build/?hl=ja
Google Cloud Buildとは一体何者なのか
https://swet.dena.com/entry/2018/08/20/170836
Cloud Build 変数値の置換
https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values
DockerでUnity ML-Agentsを動作させる(v0.5.0対応)
https://qiita.com/kai_kou/items/df3f3518a5a27b66f617
Google Kubernetes EngineでUnity ML-Agentsを動かしてみる(V0.5.0対応)
https://cloudpack.media/43540
元記事はこちら
「Google Cloud Buildを利用してUnity ML-AgentsのDockerイメージを作成する(v0.5.0対応)」