4
3

More than 3 years have passed since last update.

Google Cloud Buildを利用してUnity ML-AgentsのDockerイメージを作成する(v0.5.0対応)

Last updated at Posted at 2018-10-05

追記

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
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管理コンソールでもジョブの実行が確認できます。

スクリーンショット_2018-10-02_14_29_07-2.png

Google Container RegistryにもイメージがPushされていることも確認できます。

スクリーンショット_2018-10-02_14_34_00-2.png

これでローカルに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

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3