9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacOS XでVagrantにCentOS入れ、Railsアプリ制作、Heroku公開 vol.09

Posted at

Herokuにアプリ公開まで(完結編)

MacOS X Yosemite で Heroku にアプリを公開するまでの環境構築を何回かに分けて書きます。
今回が最終回です。

vol.01 VirtualBox インストール編
vol.02 Vagrant インストール編
vol.03 Vagrant box作成編
vol.04 VagrantのCentOS 6.5 仮想マシン(box)起動まで
vol.05 Rails 開発環境準備
vol.06 Git 環境を整備
vol.07 Heroku 公開するまでの事前準備
vol.08 Railsアプリ作成から、Herokuにプッシュまで

も合わせてお読み下さい。(というか、先にこれらの操作が必要です)

RailsアプリにModel導入

vol.08 Railsアプリ作成から、Herokuにプッシュまで では、空の Rails のまま Heroku にアップしたので、エラー表示となりました。

動作確認のため、最小限の Model と、ルートのドメインパス(/)を指定だけして再度 Heroku にあげます。
説明を簡略化するため scaffold を使ってしまいます。

最初に、Git で branch を分けておきましょう。
(必須ではない、けど、Gitの王道な使い方)

git checkout -b add-user

scaffoldで user を追加し、名前だけを登録する最小限構成で作成してみます。
(Railsの詳細は、他にいろいろあるのを参考に)

rails g scaffold user name:string

db:migrateを実行しておきます。なお、後ほど Heroku環境 でも migrate が必要になります。

rake db:migrate

後は、ドメインのルートパス(/)にアクセスした際にどこを表示するのか routes.rb に記載しておきます。

vim config/routes.rb

今回は、いま作成した users の index を指定しておくので、次の1行を書き加えて上書き保存。

root 'users#index'

これで Vagrant上 では動作確認できるはずです。
Rails 4.2 であれば、

bundle exec rails server -b 0.0.0.0

で実行し、ブラウザで http://localhost:3000/ (または、http://192.168.33.10:3000/ )にアクセスします。
Rails 4.2 以前であれば rails s でサーバが立ち上がると思います。

Heroku にアップ

この状態で Heroku にアップして動作確認をするのですが、手順は Git に最新のコードを登録し、push という流れです。
ですが、前後に操作が必要になることがあります。

Vagrantでプリコンパイル

まず、Railsの場合は css や Javascript をプリコンパイルしておく必要があります。
Heroku 環境下ではプリコンパイル前の Sass や CoffeeScript をそのままアップロードしても、正常に動作してくれません。Vagrant 環境下でプリコンパイルして、そのファイルをアップするわけです。以下を実行します。

rake assets:precompile RAILS_ENV=production

Git に登録、Heroku に push

これで準備できたので Git に登録します。Git の詳細説明は省略します、以下のコマンドは一般的なので、不明箇所はググってみてください。

git add .
git commit -m "Add users"
git checkout master
git merge add-user
git push heroku master

Heroku上で、DB の migrate

これで Heroku にアップできました。最後に、もう1つ実行しておく必要があります。
今回、Model を追加したので Heroku でも db:migrate が必要です。これを実行しておかないとエラーになります。
コマンドは以下のとおりです。

heroku run rake db:migrate

もし heroku コマンドが実行できなかったら?

次のようなエラーが表示されたら、コマンド箇所にパスが通っていないだけなので、もし .zshrc にパスを記述してるなら次のコマンドを打ってください。

herokuコマンドで以下のようなエラーが表示された場合
-bash: heroku: command not found
以下のコマンドを入力(.zshrcにパスを追加した場合)
source ~/.zshrc 

 

これですべて完了です、
Herokuのダッシュボードにアクセスし、該当のアプリを開いて上部の Open Application のリンクを開いてみましょう。
URLを直接入れても良いですが、少なくとも初回だけは打ち間違えなどを考えるとダッシュボード経由が良いです。

いかがでしょうか?
おつかれさまでした。

キーワード

  • MacOS X
  • VirtualBox
  • Vagrant
  • CentOS
  • Ruby on Rails
  • RVM (Ruby Version Manager)
  • Heroku
9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?