2012年01月21日

dotcloudでruby sinatraを動かす

前回は、ただdotcloud上にファイルを置いただけなので、もう一歩進んで、dotcloudでrubyの実行環境を作る。
自分ひとりが使う動作環境なので、フレームワークは小規模向けのsinatraを使う。
sinatraでhello worldをするまでの手順をまとめておく。
けっこうはまった。ポイントは以下3点。

  • requireするRubyファイルをディレクトリ指定しないと、みつけてくれない。
  • アプリケーションをpushしているときに、CTRL+Cして止めると、その後のrsyncに失敗し、pushができなくなる。対処策がわからないので、アプリケーションを一度destroyして、再createする。
  • Gemfileで指定したライブラリが、ちゃんとインスタンスにインストールされたか確認する。手動でgem installを実行することもできる。

手順は以下。

1. 作業用ディレクトリ(プロジェクト)を作り、アプリケーション定義ファイルを作る。

$ mkdir maarui
$ cd maarui
$ cat dotcloud.yml
# dotcloud.yml
www:
  type: ruby
  approot: s1

2. アプリケーションrootディレクトリを作る。

$ mkdir s1
$ cd s1

3. アプリケーションを作る。最低限作るファイルは、以下の3つ。

$ cat Gemfile
# Gemfile
source :rubygems
gem 'rack'
gem 'sinatra'

$ cat config.ru
# config.ru
require File.expand_path(File.dirname(__FILE__)) + '/'+ 'app.rb'
run Sinatra::Application


$ cat app.rb
# app.rb (sample)
require 'rubygems'
require 'rack'
require 'sinatra'

get '/' do
  'Hello world!'
end

4. rackの実行に必要な2つのディレクトリを作る。

$ mkdir public
$ mkdir tmp

5. 以下のようなファイル配置になる。

~/maarui/
    +----dotcloud.yml
    |
    +----s1/
          +----Gemfile
          |
          +----config.ru
          |
          +----app.rb
          |
          +----public/
          |
          +----tmp/

6. dotcloud内にアプリケーションを作る。

$ dotcloud create maarui
Created application "maarui"

7. アプリケーションを配信(push)する。

$ dotcloud push maarui .
# upload /home/maarui ssh://dotcloud@uploader.dotcloud.com:4\
43/maarui
# rsync
building file list ... done
s1/

sent 378 bytes  received 15 bytes  71.45 bytes/sec
total size is 841  speedup is 2.14
12:58:10 ---> Deploy of "maarui" scheduled for revision rsync-123123123123 at 2012-01\
-20 12:58:10 12:58:10 ---> Building the application... 12:58:10 [www] Build started for revision rsync-123123123123 (clean build) 12:58:29 [www] Fetching source index for http://rubygems.org/ 12:59:02 [www] Installing rack (1.4.0) 12:59:02 [www] Installing rack-protection (1.2.0) 12:59:02 [www] Installing tilt (1.3.3) 12:59:03 [www] Installing sinatra (1.3.2) 12:59:03 [www] Using bundler (1.0.10) 12:59:03 [www] Your bundle is complete! Use `bundle show [gemname]` to see where a bun\ dled gem is installed. 12:59:04 [www] Build completed successfully. Compiled image size is 1MB 12:59:04 ---> Initializing new services... (This may take a few minutes) 12:59:04 [www.0] Initializing... 12:59:10 [www.0] Service initialized 12:59:12 ---> All services have been initialized. Deploying code... 12:59:12 [www.0] Deploying build revision rsync-123123123123... 12:59:15 [www.0] Running postinstall script... 12:59:19 [www.0] Launching... 12:59:21 [www.0] Waiting for the service to become responsive... 12:59:22 [www.0] Re-routing traffic to the new build... 12:59:22 [www.0] Successfully deployed build revision rsync-123123123123
12:59:22 ---> Deploy finished Deployment finished. Your application is available at the following URLs www: http://maarui-ID.dotcloud.com/

8. gemのインストール状況を確認する。

$ dotcloud ssh maarui.www
# $SHELL
dotcloud@maarui-default-www-0:~$ gem list

*** LOCAL GEMS ***

bundler (1.0.10)
daemon_controller (0.2.5)
fastthread (1.0.7)
file-tail (1.0.5)
passenger (3.0.2)
rack (1.4.0, 1.2.1)
rack-protection (1.2.0)
rake (0.8.7)
rubygems-update (1.6.2)
sinatra (1.3.2)
spruz (0.2.2)
tilt (1.3.3)

dotcloud@maarui-default-www-0:~$ exit

9. ブラウザで表示を確認する。

"hello world"が出力されれば成功。



sylphide_ffr31mr at 00:03コメント(0)トラックバック(0)技術  

トラックバックURL

コメントする

名前
URL
 
  絵文字
 
 
記事検索
最新コメント
プロフィール

やすき

月別アーカイブ
  • ライブドアブログ