cloudfoundry + sinatra + sequel + mysqlメモ(1)
先週から、cloudfoundry + sinatra + sequel + mysqlで簡単なアプリケーションを動かしていて、基本的にはすんなり行けたんだけど、何点か詰まった個所のメモ。
Rubyのバージョン指定方法
vmc pushでデプロイするとき、勝手にJavaなのかRubyなのか、RoRなのかsinatraなのか、等を判別してくれるけれど、rubyのランタイムは指定しないと自動で1.8になるよう。1.9を使いたい場合は、"vmc push --runtime ruby19"。
gemの取り扱い
ほとんどのgemはrequireに書くだけで動いたけど、一部(というか一部以外?)bundlerでgemを同梱しないと動かなかった。bundlerを全然知らないので正直良く理解できてないけど、この辺とか参考。
https://github.com/cloudfoundry/vcap/issues/54
(*)sinatra, haml, sequelは確かbundlerなしで大丈夫、mysqlが駄目だったかな
起動しない場合/起動中のログ確認
vmc logs applicationname
mysqlの接続文字列
MySQLを利用する前、vmcコマンドでサービス作成、アプリケーションとバインドしたあと、sequelの場合は自分で接続情報を設定しないといけない。RoRだと勝手にyamlをなんかしてくれて繋がる、ような記述も見かけたけどRoRを知らないし、試してません。
http://support.cloudfoundry.com/entries/505124-sample-app-to-mysql-connection
接続情報は環境変数にJSONで入っているので、パースして利用するのが正しいようだけど、面倒だったら環境変数をsinatraでブラウザに出力させて、そこからサーバー名、ポート、ユーザー、パスワード、データベース名をコピペでハードコーディングしてもとりあえず動く。