Docker

Docker をビルドする

このサンプルは、Docker を使用して、Genvid サービスと、Web サイトの構築と運営の両方に使用できます。Docker のバージョンはローカルにインストールすることができますが、Docker ビルドサーバーを Amazon EC2 に直接作成する方が簡単です。(Docker マシン)

ローカル環境へのインストールについては、Windows への Docker のインストール を参照してください。

はじめに使用可能なアベイラビリティゾーンを探します。

aws ec2 describe-availability-zones --query AvailabilityZones[0].ZoneName --output text

戻り値の末尾は、アベイラビリティゾーンに対応、残りは領域を表しています。たとえば、名称が us-east-1b の場合:

  • 領域は us-east-1
  • アベイラビリティゾーンは b

このアベイラビリティゾーンに Docker マシンを作成するには:

bin\docker-machine create --driver amazonec2 --amazonec2-region us-east-1 --amazonec2-zone b [docker-name]

[docker-name] は、マシンを参照する一意の名前です。

マシンが作成できたら、以下のコマンドでシャットダウンできます。

bin\docker-machine rm [docker-name]

プロジェクトをビルドする

チュートリアルのサンプルには、少しのコンテンツしか存在しません。そこで、アーカイブを作成して、サブディレクトリ images にアップロードすることができます。このコマンドは、Docker が必要な Web サイトの構築も行うため、Docker のインストール場所やサーバーを通知する必要があります。

# On Windows command prompt
@FOR /f "tokens=*" %i IN ('"bin\docker-machine" env [docker-name]') DO @%i
# On bash for Windows
eval $(bin/docker-machine env [docker-name])
# With Powershell
bin/docker-machine env [docker-name] | Invoke-Expression

[docker-name] は指定した名称です。Docker をローカルで実行している場合は default になります。コマンドが終了したら、ゲームと Web をビルドできます。

cd samples/cube/directx
py directx.py prepare
py directx.py build-cloud
cd ../web
py web.py build-cloud

このコマンドは、2 つのアーカイブをそれぞれの images のサブディレクトリにビルドされます。スクリプトはイメージ名にチェックサムを指定し、古いイメージを削除します。スクリプトのプロダクションバージョンは、念のため古いバージョンを残しておいた方がよいでしょう。