Keep on moving

あんまりまとまってないことを書きますよ

Play!framework+ScalaのアプリをHerokuにデプロイする

HerokuでもPlay!が使えるようになりました。
Play!+Scalaがデプロイできること、他のPaasでも動くアプリが問題なくデプロイできることをたしかめて見ました。

ソース

cloudbeesにPlay!+Scalaアプリをデプロイする - Ehrenの日記で使ったアプリ。
cloudbeesで動作することを確認済み

準備

herokuのインストール

rvmを利用して、そこからgemでherokuを導入する。

$ rvm use 1.9.2
$ gem install heroku
Procfileの追加
  1. ソースをgit cloneで取得
  2. Declaring and Scaling Process Types with Procfile | Heroku Dev Centerを参考にしてProcfileを作成
web:    play run --http.port=$PORT $PLAY_OPTS
herokuにアプリを作成してデプロイ
$ heroku auth:login
$ heroku create --stack cedar
$ heroku apps:rename (他の人とかぶらないアプリ名)
$ git push heroku master

気づき点

  • Herokuにデプロイするアプリは100MBまでの制限がある*1
  • Play!+Scalaをデプロイすると今回のような小さなアプリで52.2MB.Herokuの例ではPlay!のみで28.6MBなのでdependencies.confで追加されるパッケージは容量に含まれるらしい。
    • coberturaも加えた場合は52.7MB
  • 大きめのアプリをデプロイするときは、静的ファイルは他のストレージに置くなどを考えたほうがよさそう
  • アプリを更新する際には、変更のコミットが必要。gitで管理できるのは楽です。

まとめ

GAEみたいにコマンド一発でデプロイできるわけではないですが、
割と簡単にデプロイできますね。よくできてます。
今回はDBなしのアプリケーションでしたが、次回はDBを使ったアプリを動かしてみる予定です。
その前にいろいろ勉強しないと。

*1:Slug Sizeというらしい [http://devcenter.heroku.com/articles/slug-size]