【意訳】Tutorial:Play Framework 2 with Scala, Anorm, JSON, CoffeeScript, jQuery&Heroku[Herokuデプロイ編]
元記事はこちら
少々長い記事なので、Play2アプリのビルド編とHerokuへのデプロイ編に分けます。
今回は、Herokuへのデプロイ編です。
Play2アプリのビルド編は、こちら
Step 1) Herokuのアカウントを取得して、Heroku Toolbeltとgitをインストールして、コマンドラインからHerokuへログインします
もしこれがはじめてのHerokuへのログインだったら、git用のSSHキーの作成と、Herokuアカウントへの紐付けをする必要があります。
Step 2) Heroku上の各アプリケーションは、テスト用にPostgres DBを持っています。 Heroku上でアプリケーションを実行してこのDBを使うには、別途設定が必要です。 これにはいくつか方法がありますが、最も簡単な方法はスタートアップコマンドラインからDBの設定をオーバーライドする方法です。 これはStep3で紹介します。 その前に、Psotgres JDBCドライバーをプロジェクトの依存関係として指定する必要があります。 “project/Build.scala”ファイルに、以下のような”appDependencies”を設定します。
Step 3) Herokuにどのプロセスを実行するのかを教えるために、プロジェクトルートディレクトリ配下にファイル名”Procfile”を作成し(※大文字と小文字が区別されます)、以下のように記述します
Play2では、プロジェクトのビルドにScala Build Tool(SBT)を使います。プロジェクトがHerokuへデプロイされると、プロジェクトをコンパイルするため”sbt stage!コマンドが実行されます。 そして、プロセスがJavaのクラスパスの設定とPlayサーバーの起動をする”taget/start”スクリプトを生成します。 Herokuはアプリケーションに、Javaプロパティ”http.port”が適宜設定されるように、環境変数”PORT”を使用してリッスンすべきHTTPポートを通知します。 また、Heroku上のアプリケーションへDB(とその他のリソース)への接続文字列は、デフォルトでは環境変数介して渡されます。 環境変数のDATABASE_URLは、DBホスト、名前、ユーザ名、パスワードを含みます。 所謂”db.default.url”プロパティがその値で設定されます。 またドライバは、Postgres JDBCドライバクラスに設定されます。
Step 4) Herokuはアプリケーションのアップロード方法としてgitを使っています。 SCMツールにgitを使っていようと無かろうとHerokuへアプリケーションをアップロードするにはgitを使います。 プロジェクトのルートディレクトリでgit repoを作り、ファイルを追加してコミットします。
※ 選択しての”git add”の代わりに、”.gitignore”ファイルを更新することもできます。
Step 5) Heroku CLIを使用して、Heroku上に新しいアプリケーションをプロビジョニングします。 あなたが作った各アプリケーションは1月辺り、750“dyno”時間無料です。 開発者として無料でHerokuを使用でき、スケールした分だけ支払うことになります。 コマンドライン上で、”cedar”スタックを使って新しいアプリケーションを作ります。
これでアプリケーションのHTTPとgitのエンドポイントを作ります。 アプリケーションで変更した名前を使うことも、自身のドメイン名を使うことも可能です。
Step 6) アプリケーションはクラウドへデプロイする準備が整いました。コマンドラインからHerokuのマスターブランチへ”git push”します。
Herokuがファイル受け取ると、Play Frameworkのプレコンパイラが実行され、Herokuが”slug file”をアセンブルし、”slug”がdynoへデプロイされます。
Step 7) これで”heroku create”に続いて出力のドメインに移動する、もしくは単純に実行することで、ブラウザでアプリケーションを表示できます。
Scala, Anorm, JSON, CoffeeScript, jQueryを使ったPlay2アプリケーションをHeroku上にデプロイできたはずです。 これよりも詳細にHerokuの使い方を知りたいときは、Heroku Dev Centerを確認してください。 もし質問があったら、私に知らせてください。
このエントリーは、CoffeeScript, jQuery, Play Framework, Scalaを使ってポストされました。パーマリンクをブックマークしてください。コメントかトラックバックをよろしく。トラックバックURLは、こちら
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型