tyoshikawa1106のブログ

- Force.com Developer Blog -

Getting Started with HerokuでNode.jsのアプリ開発をはじめてみました

f:id:tyoshikawa1106:20140920132001j:plain

もう一年くらい前、Herokuっておもしろそうと思ってアカウントをつくったり入門書を読んでみたりしたのですが、当時Gitとかコマンドラインの使い方とかもよくわかっていなかったため、環境構築の時点で挫折。


他に勉強したいこともあったのでまた今度にしようと思って気がつけば一年過ぎていたのですが、先日発売されたHeroku入門書を読んでもう一度勉強したくなりました。


久しぶりにHerokuにログインしてみると以前ログインしたときとガラリと雰囲気が変わっていました。話だけは聞いていたのですが、2014年8月5日頃に公開された新しいダッシュボードのベータ版とのことです。

f:id:tyoshikawa1106:20140922213449p:plain


いろいろ覗いていたらPersonal AppsにGetting Started with Herokuのメニューがありました。以前、Getting Startedを見てみた時は良く理解できなくて諦めたのですが、あれからMac OSXの作業環境も用意して、Gitの使い方なども少し勉強したので、ちょっと興味のあったNode.jsで再挑戦してみることにしました。


Node.jsのリンクから先に進むと次のページが表示されます。左側のメニューに記載された流れで進めていくみたいです。

f:id:tyoshikawa1106:20140922221030p:plain


最初のページのIntroductionにはHerokuアカウントとNode.jsの開発準備ができていることが前提だよ。というようなことが書いていました。


Node.jsを使った開発はしたことがないのですが、インストールだけはしてみたことがあったので準備はOK。インストールしているバージョンはv0.10.28です。公式サイトを確認したらv0.10.32まで公開されていたのですが、今回はこのまま進めることにします。

f:id:tyoshikawa1106:20140922221534p:plain


ここまでは問題なさそうなので、I'm Ready to Startボタンから先に進んでみました。

Set up

f:id:tyoshikawa1106:20140922222254p:plain

まずはSet upからです。コマンドラインでHerokuコマンドを実行できるようにするHeroku Toolbeltをインストールします。Downloadボタンからインストーラをダウンロードして簡単にインストールできました。


これでHeroku Loginコマンドが実行できるようになります。ターミナルからサンプルを参考に試してみたところ問題なくログインできました。正しくログインできれば「Authentication successful.」と表示されるみたいです。


SSH Keysの設定の部分がよく分からなかったのですがとりあえず、I have installed the Toolbeltボタンで次に進みます。ちなみにReport a Problemボタンはフィードバック用のボタンみたいです。

Prepare the app

f:id:tyoshikawa1106:20140922223521p:plain

git cloneコマンドでサンプルアプリをローカルの作業フォルダ内に準備できます。作業用にherokuフォルダを作成したのでcdコマンドでフォルダ内に移動して実行してみました。


すると「管理者権限がないよ」的なエラーメッセージが...

f:id:tyoshikawa1106:20140922224041p:plain


Macではsudoをつけると管理者権限で実行できるので、それをつけていないことによるエラーかなと思い、sudoをつけてもう一度。

f:id:tyoshikawa1106:20140922224647p:plain


「Xcodeのライセンスに同意していないので実行できません。」というエラーメッセージになりました。iOSアプリの開発はまだやったことがなかったのでXcodeも使っていませんでした。


Xcode起動してみるとライセンスの同意画面が表示されたので、Agreeボタンで進めてみます。

f:id:tyoshikawa1106:20140922225125p:plain:w300


画面に従って操作していけば問題なくインストールできました。

f:id:tyoshikawa1106:20140922225409p:plain:w300


一度ターミナルを再起動しようと操作したらこんなメッセージが表示されました。

f:id:tyoshikawa1106:20140922225743p:plain


ターミナルからそのまま同意などができたみたいです。ターミナルを再起動してHeroku Loginコマンドでログインしてからgit cloneコマンドを実行。今度はうまく実行できました。

f:id:tyoshikawa1106:20140922230358p:plain


作業用のherokuフォルダを覗いてみると必要なファイル一式が作成されています。

f:id:tyoshikawa1106:20140922230550p:plain


ちょっとしたトラブルがありましたが、Heroku StartedページのPrepare the appの内容はうまくいきました。続きのcd node-js-getting-startedを実行してからMy App is Readyボタンで先に進みます。

Deploy the app

いよいよHerokuにデプロイしたりするみたいです。

f:id:tyoshikawa1106:20140922231048p:plain


パスがnode-js-getting-startedフォルダ内になっていることを確認してheroku createを実行。これでHerokuにデプロイする準備ができるみたいです。

f:id:tyoshikawa1106:20140922232146p:plain


heroku createコマンドで作成された名称は自動生成されてつけられたもので変更もできるみたいです。今回はひとまずそのままで次に進むことにしました。git push heroku masterでデプロイを実行します。


ここでエラーが発生しました。

f:id:tyoshikawa1106:20140922232836p:plain


調べてみたらgit remote -vで表示される内容が何かおかしい感じ...

f:id:tyoshikawa1106:20140923010107p:plain



いろいろ試してみたのですが解決できなかったので、こういう時は全部消してもう一度最初から。

①Herokuにログインしてsshの設定。2)を選択。

f:id:tyoshikawa1106:20140923103956p:plain

②heroku keysコマンドでsshキーが設定できていることを確認。

f:id:tyoshikawa1106:20140923104443p:plain

③git cloneコマンドを実行。

f:id:tyoshikawa1106:20140923104605p:plain

④heroku createコマンドを実行

f:id:tyoshikawa1106:20140923104644p:plain

⑤heroku remote -vコマンドを実行して正しく設定できていることを確認。

f:id:tyoshikawa1106:20140923104714p:plain

⑥git push heroku masterコマンドを実行

f:id:tyoshikawa1106:20140923104805p:plain


ということで...できました!やっぱりsshの設定の部分ができていなかったみたいです。かなりハマりましたが正しく進めれば設定からデプロイまですごく簡単にできました。git pushもうまくいったので続きを進めます。

⑦heroku ps:scale web=1コマンドを実行

f:id:tyoshikawa1106:20140923105906p:plain

⑧heroku openコマンドを実行

f:id:tyoshikawa1106:20140923111015p:plain


Hello Worldが表示されました!!

f:id:tyoshikawa1106:20140923111054p:plain


Herokuコマンドをつかったデプロイまで無事に成功しました。あとはNode.jsの勉強をすればいろいろ楽しいことが出来そうです。


Getting Started with Herokuのメニュー的にはまだ先がありますが、Herokuへのデプロイの方法もようやく理解できたので今回はここまでにします。