はじめに
RailsをCloud9からHerokuをデプロイした際にいろいろ詰まったので、成功した際の諸条件を覚書で残しておきます。
Cloud9でRailsのインストール
Cloud9のBashターミナルで以下をタイプ。
~/workspace $ gem install rails -v 4.2.2
バージョンは好きなやつで。
Cloud9上で新しいRailsプロジェクトの作成
Bashターミナルで以下をタイプ。
~/workspace $ rails _4.2.2_ new sample_app
~/workspace $ cd sample_app
~/workspace $ bundle install --without production
*先にインストールしたRailsと同じバージョンで。
Cloud9のサーバ上でアプリが動いていることの確認
まずコントローラにHello Worldファンクションを追加。
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def hello
render text: "Hello World"
end
end
あとRouteの設定をする。
# You can have the root of your site routed with "root"
root 'application#hello'
保存したら、Bashのターミナルで以下をタイプしてサーバを立ち上げる。
~/workspace/sample_app $ rails server -b $IP -p $PORT
Cloud9ページの右上の方にShareというボタンがあるのでそれを押すと、ApplicationへのURLリンクがある。それをコピーして、ブラウザで確認してみる。
画面に無事 Hello Worldと出ればまずはOK。
Gitの設定
以下のコマンドをBashターミナルでタイプ。Gitの設定をする。
名前とEmailアドレスは自分のものを入力する。
~/workspace/sample_app $ git config --global user.name "My Name"
~/workspace/sample_app $ git config --global user.email sample@sample.com
~/workspace/sample_app $ git config --global push.default matching
~/workspace/sample_app $ git config --global alias.co checkout
Gitをイニシャライズして、ファイルをコミットする。
~/workspace/sample_app $ git init
~/workspace/sample_app (master) $ git add -A
~/workspace/sample_app (master) $ git commit -m "Initialize"
Bitbucketでリモートレポジトリの作成
BitbucketでGitリポジトリを作成。今回はsample_appという名前で作成。するとRepository setupというページに飛び、下のほうにI have an existing projectというボタンがあるので押す。
以下のようなターミナル用のコードが書かれているので、それをそのまま一行ずつCloud9のBashターミナルにコピペする(Bitbucketのユーザ名によってコードは異なる)
git remote add origin git@bitbucket.org:XXX/sample_app.git
git push -u origin --all # pushes up the repo and its refs for the first time
git push -u origin --tags # pushes up any tags
Herokuにデプロイする
まずはherokuにログインする。Herokuで登録したEmailアドレスとパスワードを聞いてくるので、それを入力する。
~/workspace/sample_app (master) $ heroku login
次にHerokuプロジェクトを新しく作り、GitデータをHerokuにプッシュする。
~/workspace/sample_app (master) $ heroku create
~/workspace/sample_app (master) $ git push heroku master
無事プッシュが終わったら、ターミナル上に書いてあるURLに飛んで、無事 Hello Worldが表示されれば成功。
起こりうるエラーと対処法
Rails 4.2.2をインストールするとsqliteのバージョンが1.3.10であったが、これはHerokuではまだサポートされていないらしくプッシュできなかった。なのでその場合、Gemfileでsqliteのバージョンを1.3.9にし、以下のコマンドをタイプしてBundleのアップデート及びGitを更新することで無事Herokuにデプロイできた。
~/workspace/sample_app (master) $ bundle install
~/workspace/sample_app (master) $ git add -A
~/workspace/sample_app (master) $ git commit -m "Updated Gemfile"
~/workspace/sample_app (master) $ git push heroku master