Railsで作成したアプリをHerokuで公開するメモ(SourceTree使用)
はじめに
前回、ローカル環境でRailsの環境構築を確認しました。 今回は、Railsで作成したアプリをHerokuで公開する方法を確認します。
今回の目標
herokuにデプロイし、URLにアクセスして表示を確認する。
前提
Herokuのアカウントは取得済み
デプロイするRailsアプリの作成
ローカル環境でデプロイするRailsアプリを作成します。 自分で編集したviewがデプロイされていることがわかるように、 簡単にtopページを作成します
mkdir heroku_demo cd heroku_demo rails new heroku_demo_app rails generate controller home top
topページを編集します。 heroku_demo_app/app/views/home/top.html.erbを開き、 下記のように編集しました。
<!-- template <h1>Home#top</h1> <p>Find me in app/views/home/top.html.erb</p> --> <h1>herokuにデプロイする方法を確認するよ!</h1> <h2>ホームページに飛んでみるよ</h2> <%= link_to("はこねのはこ","https://hakonebox.hatenablog.com/") %>
ローカルサーバを立ち上げ、topページの確認をします。
rails server
アクセスして見ましょう。 localhost:3000/home/top
表示が確認できました。
home/topをつけなくでもこのページが表示できるように、routesファイルの変更をします。
#Rails.application.routes.draw do # get 'home/top' #end Rails.application.routes.draw do get "/" => "home#top" end
これでlocalhost:3000にアクセスした時に、 topページを表示できるようになりました。
herokuにアプリケーションを作成する。
NEWからアプリケーションの作成をします。
Open appをクリックします。
アプリが作成できたようです。
Gemfile,databaseの編集
RailsはデフォルトでSQLiteを使用しているようですが、HerokuではPostgreSQLを使用するようです。
database.ymlの編集
production: url: <%= ENV['DATABASE_URL'] %> # <<: *default # database: db/production.sqlite3
Gemfileの編集
gem 'sqlite3' , group: [:development, :test] gem 'pg' , group: :production
途中エラーが出てしまいました。
An error occurred while installing pg (1.0.0), and Bundler cannot continue. Make sure that `gem install pg -v '1.0.0'` succeeds before bundling.
Can't find the 'libpq-fe.h header
libpq-fe.hが見つからないようです。
brew install postgresql
すると checking for tclConfig.sh... no configure: error: file 'tclConfig.sh' is required for Tcl と出ました。
brew install tcl-tk
A formula for tcl-tk might have been added recently.
Run brew update
to get the latest Homebrew updates!
と出ました。
brew updateを実行しましたが、
brew update
Error: /usr/local must be writable!
ぐぬぬ。
こちらのサイトを参考にさせていただきました。
サイドbrew updateを実行して待つこと約30min.... やったか!?と思ったらまた次のエラー Error: update-report should not be called directly!
brew updateの前に、brew upgradeが必要みたいです。
brew upgrade brew update
うまくいったようです。
再度
brew install tcl-tk brew install postgresql bundle install
いけました! ここまで長かった...。
rails serverで起動して、ローカルでの動作ができました。
しかしゴールではない.....。
SourceTreeの設定
SourceTreeを開きます。 新規から既存のローカルリポジトリを追加を選択
リモートを追加を選択 必須情報にリモートの名前とURL/パスを設定します。 URLはHerokuのSetting→Infoに記載されています。
デプロイする
そしてプッシュ
開いてみる。
HerokuからOpen appで開きます。 ひらけました。
やったああああああああああああああああ!!!!!!! やりました。
さいごに
Sourcetreeからならいらない操作あったんじゃないかな... あとmacbookの環境構築はいまだにわからないことが多いです。
なんとかデプロイまで進めたのでよかったです。
途中心くじけそうになって相談させていただきました。 naichiさんありがとうございます。 blog.naichilab.com