Nitrousでゼロからアプリ作成(初期環境構築)
なにが良くなかったのか、nitrous上で作成したアプリをherokuにアップロードしたら正しく動かなかったので、ゼロから環境を作り直してみました。
なんど記録したか分からないですが、初期設定から、ある程度アプリができるまでの手順をまとめた記事です。だんだんはてなブログの使い方にもなれてきたので、古い記事よりも分かりやすい内容になっていると自負しています。
■ 今回の実装方針
以下の流れの機能を実装して行きます。
① アプリケーションの作成
② gitレポジトリの作成
③ githubへのプッシュ
④ herokuへのプッシュ
■ アプリケーションの作成(①)
Railsアプリケーションを作成するので、以下のコマンドでアプリケーションを作成します。Ruby on Railsチュートリアルに倣って、テストユニットは作成しません。
~$ cd workspace/
~/workspace$ rails new xapp7 --skip-test-unit
■ Readmeの編集(①)
アプリケーション・ディレクトリの直下にREADME.rdocがいるので、これをREADME.mdにリネームして編集します。とりあえずアプリケーション名と概要を記述しておけば十分です。
マークダウン文法については、この辺を参考に。
Qiita - Markdown記法 チートシート - Qiita
■ 公開準備とgitレポジトリの作成(②)
ソースコードをウェブ上にアップロードするのでセッション変数を暗号化するために使われる秘密トークンが動的に生成するように設定するファイルを作成します。
なお、ファイルの末尾にある"Xapp9"は自分のアプリケーション名に変更します。
config/initializers/secret_token.rb
次に、トークンファイル等がgithutにアップロードされないようにアプリケーションの直下にある.gitignore(隠しファイル)を修正します。Nitrousでは画面左のメニューにある"Show Hidden"を押すと、隠しファイルが表示できます。
.gitignore
gitレポジトリの作成と最初のコミットを実施します。
~/workspace/xapp7$ git init
~/workspace/xapp7$ git config --global user.email "mail address"
~/workspace/xapp7$ git config --global user.name "github user name"
~/workspace/xapp7$ git add .
~/workspace/xapp7$ git commit -m "Initialize repository"
■ githubとの連携設定(③)
github-nitrous.ioを連携させるには、nitrousの公開暗号鍵をgithubに登録する必要があります。Boxes画面を開いて"Reveal Public Key"を選択します。
公開暗号鍵が出力されたら、"add github"を選択します。これで登録は完了です。
(私はgithubのアカウントでログインしていますが、githubのアカウント以外でnitrousにログインしている場合、追加の操作が必要になるかもしれません。)
暗号鍵の設定が終わったら、githubにファイルをアップロードします。なお、"git push"に"-u"のオプションをつけているのは、次回からは"git push"と入力するだけで、githubにプッシュできるようにするためです。
~/workspace/xapp7(master)$ git remote add origin git@github.com:<UserName>/<RepoName>.git
~/workspace/xapp7(master)$ git push -u origin master
■ Herokuとの連携設定(④)
nitrousにはherokuクライアントがインストールされているので、アカウントのセットアップをして、すぐにプッシュすることが出来ます。
~/workspace/xapp7(master)$ heroku login
Enter your Heroku credentials.
Email: <Your Email>
Password (typing will be hidden): <Your Password>
Authentication successful.
~/workspace/xapp7(master)$ heroku create xapp7
~/workspace/xapp7(master)$ heroku keys:add
~/workspace/xapp7(master)$ git push heroku master
~/workspace/xapp7(master)$ heroku info
=== xapp7
Git URL: git@heroku.com:xapp7.git
Owner Email:
Region: us
Stack: cedar
Web URL: http://xapp7.herokuapp.com/
Web URLにアクセスして、以下の画面が表示されればアップロードは成功です。
以上で今回の作業は終了です。次回はgemfileを編集して、最初の画面を作成します。
■ 余談: Herokuのエラー(sqlite3)
実は上記の手順では、Herokuでエラーが発生します。Herokuのダッシュボード画面からActivityを確認するとエラーログを見ることができます。
同エラーログの一番最後に、Herokuではsqlite3をサポートしていないと表示されています。herokuを利用する場合は、gemfileのproduction環境でpostgresを利用するようにする必要があります。
Detected sqlite3 gem which is not supported on Heroku.
https://devcenter.heroku.com/articles/sqlite3