Play2.0をherokuで動かしてみた | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

Play2.0-betaが出ていたのでherokuで動かしてみた。
PlayはScalaのフレームワークで結構注目されている。
herokuはrubyやscala、node.jsなんかが動かせるクラウドサービス。

まずPlayの準備


こんなコマンドでinstallができる。


$ wget http://download.playframework.org/releases/play-2.0-beta.zip
$ unzip play-2.0-beta.zip
$ export PLAY_PATH=/path/to/play-2.0-beta
$ export PATH=$PLAY_PATH:$PATH
$ play install scala


アプリケーションを作る

アプリケーションのひな形生成は下記のコマンドでできる。


$ play new myapp

タイプの選択を求められるので、1のScalaアプリを選択。

アプリ名のディレクトリが生成され、中にひな形ができるので実行してみる。


$ cd myapp
$ play run


デフォルトではポート9000番で起動する。

http://localhost:9000/
このアドレスにアクセスしてみると、
Your new application is ready.
と表示されるはず。


Pimp my Code. @wataru420-play2.0

herokuの準備


http://www.heroku.com/
上記のアドレスからherokuにサインアップする。

そしてherokuのToolbelt(herokuコマンドなんか)をインストール
http://devcenter.heroku.com/articles/quickstart
macの場合はpkgファイルからインストールするだけ。

完了したらherokuのログインコマンドを打つ。

$ heroku login

自分の登録したアカウント情報の入力をすると、sshの接続設定なんかが行われる。

アプリのデプロイ


playをデプロイした際に、自動でアプリが起動するように若干設定が必要。

project/plugins.sbtに下記の一行を追記。


addSbtPlugin("com.typesafe.startscript" % "xsbt-start-script-plugin" % "0.5.0")


起動スクリプトを生成するプラグインを追加。

herokuでscalaを使う場合、cedarスタックというのを使う。
このcedarスタックでアプリを起動させるにはProckfileというファイルを作る必要がある。
アプリのカレントディレクトリに下記の内容のProckfileという名前のファイルを作成する。

web: target/start


herokuのアプリデプロイにはGitが必要。
mac os10.7以降なら入ってる。なければ入れる必要がある。

で、まずGitのローカルレポジトリーを用意する。

$ git init
$ git add .
$ git commit -m "init"


次にCedarにスタックの準備。

$ heroku create --stack cedar


herokuのwebインスタンスの追加もしておく。(これが公式のドキュメントに無かったのでやたらはまった。。)


$ heroku scale web=1


そしてherokuにpush!

$ git push heroku master


これで、うまくいくとアプリがデプロイされ起動する。
うまくいったかどうか、まずプロセスを確認してみる。


$ heroku ps


次に実際に画面で確認する。


$ heroku open


ローカルと同じ画面が表示されるはず。

便利なコマンド


ログを確認

$ heroku logs


ログをtailfする

$ heroku logs -t


再起動

$ heroku restart


ヘルプ

$ heroku help


参考サイト

http://devcenter.heroku.com/articles/play
https://github.com/playframework/Play20/wiki/ProductionHeroku

クラウド化する世界
クラウド化する世界 ニコラス・G・カー Nicholas Carr 村上 彩

翔泳社 2008-10-10
売り上げランキング : 118329


Amazonで詳しく見る