New-Village

月間ブログ。だいたい1カ月に1回は更新しているようです。

Nitrousでゼロからアプリ作成(初期環境構築)

なにが良くなかったのか、nitrous上で作成したアプリをherokuにアップロードしたら正しく動かなかったので、ゼロから環境を作り直してみました。

なんど記録したか分からないですが、初期設定から、ある程度アプリができるまでの手順をまとめた記事です。だんだんはてなブログの使い方にもなれてきたので、古い記事よりも分かりやすい内容になっていると自負しています。

f:id:New-Village:20140906163958p:plain

 

■ 今回の実装方針

以下の流れの機能を実装して行きます。

① アプリケーションの作成
② 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"を押すと、隠しファイルが表示できます。

f:id:New-Village:20140906152450p:plain

.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"を選択します。

f:id:New-Village:20140906153933p:plain

公開暗号鍵が出力されたら、"add github"を選択します。これで登録は完了です。
(私はgithubのアカウントでログインしていますが、githubのアカウント以外でnitrousにログインしている場合、追加の操作が必要になるかもしれません。)

f:id:New-Village:20140906154528p:plain

暗号鍵の設定が終わったら、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にアクセスして、以下の画面が表示されればアップロードは成功です。

f:id:New-Village:20140906162603p:plain

 

以上で今回の作業は終了です。次回はgemfileを編集して、最初の画面を作成します。

 

■ 余談: Herokuのエラー(sqlite3)

実は上記の手順では、Herokuでエラーが発生します。Herokuのダッシュボード画面からActivityを確認するとエラーログを見ることができます。

f:id:New-Village:20140906163009p:plain

同エラーログの一番最後に、Herokuではsqlite3をサポートしていないと表示されています。herokuを利用する場合は、gemfileのproduction環境でpostgresを利用するようにする必要があります。

Detected sqlite3 gem which is not supported on Heroku.
https://devcenter.heroku.com/articles/sqlite3