ちなみにHerokuは現在Node.js, Clojure, Java, Python, Scalaもサポートしているので
Railsじゃなくてもいいだろってツッコミがありそうだけど、もともとRubyのPaaSなので。
ということで環境構築からHerokuでデプロイするまでの流れをメモ。
事前準備
- Xcodeインストール
- MacPortsインストール
- Gitインストール
- Herokuのアカウント作成
MacPortsアップデート
$ export PATH=$PATH:/opt/local/bin/ # MacPortsのパスを通す $ sudo port -d selfupdate $ sudo port -d sync
RVM(Ruby Version Manager)インストール
$ bash < <(curl -sk https://rvm.beginrescueend.com/install/rvm) $ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bash_profile $ source .bash_profile $ rvm --version rvm 1.10.0 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]
Rubyインストール
Herokuでのサポートされている1.9.2をインストール。
Macにもともと入っているRubyは1.8.7なので別途インストールする必要がある。
$ rvm pkg install readline $ rvm install 1.9.2 --with-readline-dir=$HOME/.rvm/usr $ rvm use 1.9.2 --default $ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
必要なパッケージのインストール
$ gem install rails $ gem install sqlite3 $ gem install heroku
プロジェクト作成
$ mkdir project $ cd project $ rails new herokuapp
ひな形を作成してマイグレーションを実行
どうせならHello World的なやつではなくscaffoldを使ってみる。
$ cd herokuapp $ rails g scaffold Product title:string description:text image_url:string price:decimal $ rake db:migrate
ローカルで実行
ローカルでアクセスしてみる。
$ rake routes products GET /products(.:format) {:action=>"index", :controller=>"products"} POST /products(.:format) {:action=>"create", :controller=>"products"} new_product GET /products/new(.:format) {:action=>"new", :controller=>"products"} edit_product GET /products/:id/edit(.:format) {:action=>"edit", :controller=>"products"} product GET /products/:id(.:format) {:action=>"show", :controller=>"products"} PUT /products/:id(.:format) {:action=>"update", :controller=>"products"} DELETE /products/:id(.:format) {:action=>"destroy", :controller=>"products"} $ rails sブラウザでhttp://localhost:3000/productsにアクセス。
正常にアクセス出来たら次へ。
Heroku用に修正&追加
Herokuは無料の範囲だとPostgreSQLを使うことになるのでGemfileの内容を下記のように書き換える。
gem 'sqlite3' ↓ gem 'pg'
必要なパッケージをインストールしてGitのローカルリポジトリへコミット。
$ sudo port install postgresql84 $ sudo ln -s /opt/local/bin/psql84 /usr/bin/psql $ gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config $ bundle install $ RAILS_ENV=production bundle exec rake assets:precompile $ git init $ git add . $ git commit -m "Generate rails app."
Herokuへデプロイ
一番最初にHerokuアプリを作成する場合、emailとパスワードの入力を求められるので入力する。
$ heroku create Enter your Heroku credentials. Email: u1aryz.d@gmail.com Password: Creating fierce-autumn-9435... done, stack is bamboo-mri-1.9.2 http://fierce-autumn-9435.heroku.com/ | git@heroku.com:fierce-autumn-9435.git Git remote heroku added $ git push heroku master $ heroku rake db:migrate
デプロイされたWebアプリへアクセス
$ heroku openこれでブラウザが立ち上がるはずなので、urlにルートのパス(/products)を追加してアクセス。
最初はだいぶ手こずったけど次からは楽ちん。
便利な時代になったなー。
0 件のコメント:
コメントを投稿