Duostackで使用するRubyのバージョンを1.9.2に変更する

昨日のDuostackでHello world記事で、初出時に間違って「DuostackはRuby 1.8系しか使えない」と書いてしまったけど、その後Duostackのドキュメントを見てたらバージョンを変更する方法の記述を見つけて、試してみたらちゃんとRuby 1.9.2も使えた。今回は備忘録がてらその方法を記事に。これまたHerokuでRubyのバージョンを変更する手順と良く似てるけど、微妙に違う。

Duostackで使用するRubyのバージョンを変更する

まず、Duostackアプリで現在使用しているRubyのバージョンを調べるには、duostack config stackコマンドを実行する。デフォルトでは下記の通りautodetectが選択されていて、自動判別されるっぽい? 何を元に自動判別をするかはわからない。

$ duostack config stack
* autodetect
  ruby-ree-1.8.7
  ruby-mri-1.9.2
  node-0.2.5
  node-0.4.0
  node-0.4.2

明示的に使用するRubyのバージョンを変更するには、duostack config stackコマンドの後ろに、変更したいバージョンの文字列を指定する。今回は1.9.2にするので、ruby-mri-1.9.2を指定する。

$ duostack config stack ruby-mri-1.9.2
App will be migrated to ruby-mri-1.9.2 during next Git push.
$ duostack config stack
  autodetect
  ruby-ree-1.8.7
* ruby-mri-1.9.2
  node-0.2.5
  node-0.4.0
  node-0.4.2

この時点ではバージョン変更の予約がされた状態で、実際に変更されるのは次にgit pushした時になる。試しに、昨日使ったHello worldのコードに追加して、1.9.2を使うようにしてみる。app.rbを以下のように修正して、git pushする。

# coding: utf-8
get '/' do
  'DuostackでSinatraを使ってHello world!'
end
get '/ruby_version' do
  "RUBY_VERSION = #{RUBY_VERSION}"
end

利用しているRubyのバージョンを返す組み込み定数を表示するためのパスを追加する。これでデプロイして、http://duohelloworld.duostack.net/ruby_versionにアクセスすると、1.9.2にちゃんと変わっているのがわかる。


Duostack · Docs: Configuration Options Herokuそっくり!DuostackでSinatraを使ってHello worldする