ScalaでPlayなアプリをHerokuにデプロイした作業ログ
Posted: Updated:
Scalaのインストール
体に流れる名古屋の血が、Scalaをすべしと騒ぐので。ウソです。
例によって作業ログ系。はじめはScalaインストールして、PlayでHello Worldしてみるか〜ぐらいだったのが、途中でHerokuがScala+Playに対応してると知ったのでデプロイまでいってみました。
バージョン管理スクリプトを見つけたので、こちらを拝借してインストール。わりと何事もなくインストールできます。
% nvm install 2.9.2 Trying to installing version of 2.9.2. … Installed directory is /path/to/.svm/scala-2.9.2 Do you want to change current runtime version to 2.9.2? y/N: y currently version is 2.9.2 % scala Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_33). Type in expressions to have them evaluated. Type :help for more information. scala>
.zshrc
には下記のパスを追記しています。
## svm export SCALA_HOME=~/.svm/current/rt export PATH=$SCALA_HOME/bin:$PATH
sbtもインストール
sbt is a build tool for Scala and Java projects that aims to do the basics well. It requires Java 1.6 or later. Home · harrah/xsbt Wiki
sbtは、Scalaプロジェクトの標準的なビルドツールだそうで。横着してbrewで入れてるので難なく一発で入ります。
% brew install sbt
sbtの中に必要なランタイム含まれてるみたいだし、ひょっとしてsvmでscalaインストールのくだりは余分だった?
Play Frameworkを入れてみる
Download — Playframeworkから、適当な安定版を落としてきて、~/lib/play-2.0.3
に展開します。
.zshrc
には下記を追記して、展開したパッケージの直下にあるplayコマンドにパスを通します
## play2 framework export PATH=$PATH:$HOME/lib/play-2.0.3
Playアプリケーションを作成
早速アプリケーションを初期化してみます。
% play new HelloPlay2 _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.3, http://www.playframework.org The new application will be created in /path/to/HelloPlay2 What is the application name? > HelloPlay2 Which template do you want to use for this new application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project > 1 OK, application HelloPlay2 is created. Have fun!
初期化されたので、これをrunするとdevelopment実行、startするとproduction実行となるそうです。
# development % play run # production % play start
実行してみると分かりますが、developmentだとアレコレこうやったらページ追加できるよAPI docsはここだよ、というようなWelcomeページが表示されます。productionだとシンプルにYour new application is ready.とだけ表示されます。
Herokuにデプロイ
今回はあまりアプリケーションをいじらずに、ちゃっちゃとHerokuにデプロイしてみます。早速Procfileを作成します。
% echo 'web: play start' > Procfile
Gitを初期化します。
% git init % git add . % git commit -m "initialize"
Herokuアプリを初期化します。
% heroku create hello-play Creating hello-play… done, stack is cedar http://hello-play.herokuapp.com/ | git@heroku.hello-play.git Git remote heroku added
デプロイ(push)しちゃいます。
% git push heroku master % heroku oepn
できました。これで成功していれば、heroku open
でブラウザにデプロイしたアプリケーションの画面(何もいじっていなければYour new application is ready.)が表示されているはずです。
ちなみに、Play Framework関係なしなScalaプロジェクトのデプロイについては、Heroku公式のGetting Started with Scala on Heroku | Heroku Dev Centerで、紹介されています。まじめにやるならsbt使いこなせないと厳しそうだな〜。
Herokuラクチンでいいなあ
相変わらず何か作る気はないんですが、ちょっと触ってみてラクチンで良かったです。heroku使っておけば、nodeとscalaの簡単なアプリは試せますし、もちろんrubyもいけるので、何かの折には楽しく遊べそうです。
お暇な方は、nodeとscalaの学習環境として、軽く手習いしておくとおもしろいんじゃないでしょーか。
自分は簡単な読み書きレベル(たぶん今のRuby程度)のためにScalaをちょいちょい触ってみる予定。息抜きレパートリーの一環ということで。