追記
v0.9.1で動作させる方法をまとめました。
Google Cloud Buildを利用してUnity ML-AgentsのDockerイメージを作成する(v0.9.1対応) - Qiita
https://qiita.com/kai_kou/items/5eabbaa2b564527e0b4e
概要
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イメージが作成できるようにcloudbuild.yaml
ファイルを用意します。
> mkdir 任意のディレクトリ
> cd 任意のディレクトリ
> touch 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']
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です。
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://qiita.com/kai_kou/items/3a4d860f8353ff1b3110
参考
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://qiita.com/kai_kou/items/3a4d860f8353ff1b3110