node.jsに入門 その2 クラウドにアップロード
前回の記事の続きです。
9月29日追記:記事を少し修正しました。
3.クラウドにアップロードしてみる
いくらスクリプトがかけても、ウェブ上に上げなければ意味がありません。というわけで、クラウドに上げるすることにしました。
しかし、node.jsとは関係なさそうなこの作業で一番手こずりました。
まずは、有名な「Heroku」にデプロイすることにしました。
ここにデプロイする手順は、書くのがめんどいので(おいおい)、ここにおまかせしておきます。
というわけで、そこを見ながらデプロイしてみます。
ですが、本来表示されるはずのDynosの欄が表示されません!(画像は上の講座の物を使用しています)
原因も分からず、断念しました。
(その後、もう一回挑戦したんですが駄目でした。
二回目の断念の後にアカウントを削除しました)
次にNode.js専用のクラウド、「Node Ninja」にデプロイすることにしました。
ここも説明や手順がめんどいので(いい加減にしろ)、ここをご覧ください。
通常のスクリプトだと上手くいくのですが、Express(次回書きます)を使うと、
「接続がリセットされました」というエラーが...(筆者はFirefoxを利用しています)
その後何度かやった(スクリプトを直したりなど)んですが、同じエラーが出て駄目でした。
というわけでここも断念。
現在は予備として使っています。(まあそのままの形は利用できないけど)
そして「dotCloud」や「IBM Bluemix」にも登録したんですが、条件が合わずデプロイする前に断念。
最終的に「OpenShift」にたどり着きました。
(前準備は省略します)
しかし、ここでもつまずくことになります。
通常のスクリプトでも503エラーが出ます。
しかし、ここでは解決法が見つかりました。
$ git clone ssh://xxx@name-domain.rhcloud.com/~/git/appname.git
※name,domain,appnameのところには任意の文字が入ります。
git cloneして落としたフォルダの中に自分で作ったファイルを追加したり、スクリプトを書き換えてデプロイすると...
成功しました!
因みにデプロイの仕方は、
$ cd (スプリクトの入っているフォルダに移動) $ git init $ git add . $ git commit -m 'ここにコメントを書く' $ git remote add hoge ssh://xxx@namespace-domain.rhcloud.com/~/git/namespace.git $ git push hoge master
まず、スプリクトの入っているフォルダに移動します。
次にgit initでフォルダをGit用にして、デプロイする準備をします。
その次にgit addで追加したファイルをgitに追加します。
そしてgit commitでgitに追加したファイルや修正したをまとめて送信します。
git remote addでデプロイ用のgitを追加します。なお、この作業は一回目だけでOKです。
最後にgit pushでコミットしたファイルをまとめてアップロードします。
なお、git pushを実行した時に(ここでは、デプロイ用のフォルダが'C:\hoge\test'の場合)、
To c:\hoge\test ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'c:\hoge\test' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
というエラーが出た場合は、
git push --force hoge master
とすると、解決します。
最後に、この記事は上で挙げたクラウドサービスを使えないと中傷する意図は全くありません。
すべて筆者の実力不足のせいです。
というわけで、相変わらず分かりにくい文章ですが、最後までご覧いただき、ありがとうございます。
次回はExpressについて書く予定です。