therubyracerがアレすぎですが、herokuよりはやりやすかった。sshできるのが大きいです。
gemfileにtwitter-bootstrapとかless-railsとか積んでると面倒かも。
自分のPCで
> pybrew use Python-2.7.3 > pip install dotcloud > cd APP_ROOT > dotcloud create [appname] > vi dotcloud.yml www: type: ruby db: type: postgresql > git add . > git ci -m 'add yml'
dotcloudにアプリをアップ
> dotcloud push
dotcloudにデータベースを作成
> dotcloud run db # createdb [dbname] # exit
アップされたrailsアプリを動くように色々作業
> dotcloud run www $ cd current $ rm -rf vendor/bundle # 自分のPCではvendor/bundleにbundle installしているので削除 $ rm .bundle # 設定も削除 $ vim Gemfile gem 'therubyracer', '0.11.0beta8', :platforms => :ruby # therubyracerが0.11.0beta8じゃないとbundle installが失敗する $ bundle install
データベースの設定を記述
$ cat ../environment.yml $ vi config/database.yml # productionを編集
具体的には、
<% require 'json' env = JSON.parse(File.read('/home/dotcloud/environment.json')) %> production: adapter: postgresql encoding: unicode database: [dbname] pool: 5 username: <%= env['DOTCLOUD_DB_SQL_LOGIN'] %> password: <%= env['DOTCLOUD_DB_SQL_PASSWORD'] %> host: <%= env['DOTCLOUD_DB_SQL_HOST'] %> port: <%= env['DOTCLOUD_DB_SQL_PORT'] %>
ここに書いてある
http://docs.dotcloud.com/0.9/guides/environment/
rake db:migrateの実行
$ rake db:migrate RAILS_ENV=production $ exit
自分のPCに戻って、dotcloud open
これだとdotcloud pushしたときに設定が全部上書きされてしまうので、作業側のコードも編集しておき、rbenvあたりでgem管理しておけばいいかも。