NetBeansで、RubyでSinatraアプリ書いて、Herokuにデプロイする
NetBeansで、RubyとそのフレームワークSinatraを使ったWebアプリを書き、これを、 Herokuにデプロイする。NetBeansがRubyの正式サポートやめてから、NetBeansのRuby関係の記事があまりない(あっても、RubyOnRailsが大半)ので、自分でいろいろやってみた。
現在NetBeansは、Rubyを正式サポートしなくなったため、別途NetBeanのRuby用ブラブインをインストールする。
Ruby and Rails - NetBeans Plugin detail
■流れは以下のとおり。
- NBでRubyの新規プロジェクト作成
- NBはデフォルトのRuby処理系は、NBに付属してくるjrubyであるが、あとでherokuにデプロイするので互換性を考え、別途Ruby1.9か2.0x系をインストールし、これをJrubyの代わりに使う(プロジェクトごとに使うRubyの処理系を指定できる)
- 作成したプロジェクト名(ツリーの最上部階層)を右クリックし、構成を設定/カスタマイズを選択し、表示されたダイアログの "RubyPlatform"で、実行につかうRubyのバージョンを選択する。ここで前項でインストールした、Ruby1.9ないし2.x.xを選択する。
- ソースフォルダ(プロジェクトツリーでは、"Sourcefiles", 実際のファイルディレクトでは"lib")の直下に、rubyのソースファイル(main.rbなどと)を作成。,
- 同じく、ソースフォルダ直下に、config.ruを作成
- config.ru は
require './oauth_consumer.rb’ #最初に実行するrubyソースファイル名
run Sinatra::Application
と記述
(参考)herokuのSinatraアプリデプロイの解説を参照。 - ソースフォルダ直下に、Gemfileを作成
- Gemfileには、本アプリで利用するgemを記述。
- (NBを一旦離れてコンソールで操作)コンソールで、ソースフォルダにcdして、
bundler install を実行。Gemfile.lockが生成される。
(参考)ソースフォルダ:~/NetbeansProject/プロジェクト名/lib - (引き続きコンソールで操作)コンソールで、ソースフォルダで、"git init"コマンドを実行。gitローカルリポジトリを作成する。
(注1)NBのメニューからでもgit初期化ができるが、これは、本PRJのトップ階層からのgit initしかできない。
(注2)コンソールから"git init"を実行しローカルリポジトリがが作成された後、NBのソースフォルダを右クリックすると、Gitメニューが表示される。以降、NBのソースフォルダの右クリックし、表示されるGitメニューから、git add, git commit と同じ操作が行える。 - (NBで操作)NBのソースフォルダ右クリックし、gitメニューで、「追加」「コミット」を実行。
これで、herokuにデプロイするものの準備ができた。
- (コンソールで操作)カレントディレクトリ=ソースフォルダで、
heroku login
heroku create <アプリ名> ... アプリ名はherokuの決まりで、全て小文字。
→ NBのgitの「リモート」には、なぜか生成・関連付けられたheroku上のリモートリポジトリが表示されず。
よって、NB/git/リモートで、「リモートにプッシュ」は実行できず。 - (コンソールで操作)カレントディレクトリ=ソースフォルダで、
git push heroku master でherokuにデプロイ。
- (コンソールで操作)カレントディレクトリ=ソースフォルダで、
heroku open
と実行すると、herokuにデプロイされたアプリが起動し、さらに、ローカルのWEBブラウザ画面が新規に自動的に開き、起動されたアプリのURLが入力されます。
アプリに問題なければ、アプリの動作後の画面が表示されます。
アプリになんらかの問題あれば、その旨herokuのメッセージが表示されます。