【Rails】GitHubのアカウント登録 から、Herokuへデプロイまで

ソースコード管理システムのGitHubを活用して、Ruby on Rails アプリケーション開発を効率化しましょう!また、Herokuは無料で使えるクラウドプラットフォームで、Webアプリの公開が簡単にでき、小規模サイトや個人ブログ程度にも使えます。本番アプリとは別でステージング環境も無料で追加できるので、おすすめです。

GitHub アカウント登録


1)まずは、GitHubのトップページにアクセスして、ユーザ名とメールアドレス、パスワードを入力してSign upします。
2)Create an accountをクリック
3)「Choose your personal plan」で無料プランのUnlimited public repositories for free.を選択し、Continue。
4)経験について答えて、Submit
5)登録したメールアドレス宛に認証メールが届くので、そのメールに記載のURLもしくはボタンをクリックして登録完了です。

Gitリポジトリの作成

ルート・ディレクトリで次のコマンドを打ち、Gitリポジトリの新規作成、または既存のGitリポジトリの再初期化を行います。

Gitはすべてのファイルの変更履歴を管理しますが、管理対象に含めたくないファイルは .gitignore で管理します。ここではRails Tutorial を参考にさせていただきます。

.gitignore

Gitに追加、コミット

次のコマンドで、カレントディレクトリ(自分の今いるディレクトリ)以下の全てのファイルをステージングエリアに追加します。「.」がカレントディレクトリを示します。

「-m」フラグで、コミットメッセージをつけて変更をコミット(保存)します。

※「git add .」 と 「git commit -m」 を 一度に行う場合は「git commit -a -m “コミットメッセージ”」です。

GitHubにリモートリポジトリの作成 ~ プッシュ

次にGitHubのリモートリポジトリの作成を行います。

ブラウザで GitHub を開き、 New repository をクリック => Repository name を入力 => Create repository をクリックで作成できます。

次のコマンドでルートディレクトリから、リモートリポジトリを追加することができます。
ここではRepository nameを「test」、 GitHubのusernameを「remonote」としました。それぞれ適宜、変更してください。

登録されているリモートリポジトリの確認は次のコマンドをうつ。

間違えた時にリモートリポジトリを削除する場合はこれです

続いて次のコマンドで、ローカルリポジトリを、リモートリポジトリにプッシュ(同期)します。

Username と Password を聞かれるのでGitHubのアカウント設定のものを入力。

herokuへdeploy

Gemfileに、下記を追記します。pgはherokuで利用するデータベースPostgreSQLで、rails_12factorは、herokuでまとまったアセットを利用するために使用します。

Gemfile

gemのインストール

そして、上記の追加分をコミット。

続いて、herokuのアカウントを作成してください。
https://dashboard.heroku.com/
そしてルートディレクトリで次のコマンドを実行。

Email と Password を入力。

Herokuに新しいアプリケーションを作成。heroku createの後ろにアプリ名を指定します。指定がないとHeroku側で適当なアプリ名が付けられますが、後から変更も可能です。

すでにあるからっておこられました。Heroku全体でユニークにする必要があるようです。そのままURLにも使われるので、他のユーザーに使われていないアプリ名が必要ですね。

そしてHerokuへプッシュすればデプロイとなりますが、、、、

Herokuではsqlite3はサポートしていないということで拒否されました。以下のようにsqlite3は開発環境の指定をします。

Gemfile

コミットしてから再度、Herokuにプッシュしたら今度はデプロイに成功しました。

あとはHerokuでもマイグレーションを実行して、シードデータを流す場合は、追加でコマンド入力してください。

gem ‘seed-fu’使っている場合はseed_fuですね。

これで $ heroku open または https://アプリ名.herokuapp.com でブラウザからアクセスできます。
お疲れ様でした!


投稿者:

Shuji Tenra

「仕事に特化したQ&AサイトJobQuery【ジョブクエリ】」の開発/運営をしています。https://jobquery.jp