No Name

メモ程度

NetBeansで、RubyでSinatraアプリ書いて、Herokuにデプロイする

NetBeansで、RubyとそのフレームワークSinatraを使ったWebアプリを書き、これを、 Herokuにデプロイする。NetBeansRubyの正式サポートやめてから、NetBeansRuby関係の記事があまりない(あっても、RubyOnRailsが大半)ので、自分でいろいろやってみた。

Rubyプラグインのインストール

現在NetBeansは、Rubyを正式サポートしなくなったため、別途NetBeanのRuby用ブラブインをインストールする。

Ruby and Rails - NetBeans Plugin detail

 

■流れは以下のとおり。

  1. NBでRubyの新規プロジェクト作成
  2. NBはデフォルトのRuby処理系は、NBに付属してくるjrubyであるが、あとでherokuにデプロイするので互換性を考え、別途Ruby1.9か2.0x系をインストールし、これをJrubyの代わりに使う(プロジェクトごとに使うRubyの処理系を指定できる)
  3. 作成したプロジェクト名(ツリーの最上部階層)を右クリックし、構成を設定/カスタマイズを選択し、表示されたダイアログの "RubyPlatform"で、実行につかうRubyのバージョンを選択する。ここで前項でインストールした、Ruby1.9ないし2.x.xを選択する。

    f:id:mirie0908:20141013174045p:plain



  4. ソースフォルダ(プロジェクトツリーでは、"Sourcefiles", 実際のファイルディレクトでは"lib")の直下に、rubyのソースファイル(main.rbなどと)を作成。,
  5. 同じく、ソースフォルダ直下に、config.ruを作成
     
  6. config.ru は
    require './oauth_consumer.rb’  #最初に実行するrubyソースファイル名
    run Sinatra::Application 
    と記述
    (参考)herokuのSinatraアプリデプロイの解説を参照。
  7. ソースフォルダ直下に、Gemfileを作成
  8. Gemfileには、本アプリで利用するgemを記述。
  9. (NBを一旦離れてコンソールで操作)コンソールで、ソースフォルダにcdして、
    bundler install を実行。Gemfile.lockが生成される。
    (参考)ソースフォルダ:~/NetbeansProject/プロジェクト名/lib
  10. (引き続きコンソールで操作)コンソールで、ソースフォルダで、"git init"コマンドを実行。gitローカルリポジトリを作成する。
    (注1)NBのメニューからでもgit初期化ができるが、これは、本PRJのトップ階層からのgit initしかできない。
    (注2)コンソールから"git init"を実行しローカルリポジトリがが作成された後、NBのソースフォルダを右クリックすると、Gitメニューが表示される。以降、NBのソースフォルダの右クリックし、表示されるGitメニューから、git add, git commit と同じ操作が行える。
  11. (NBで操作)NBのソースフォルダ右クリックし、gitメニューで、「追加」「コミット」を実行。
    これで、herokuにデプロイするものの準備ができた。

    f:id:mirie0908:20141013175752p:plain

  12. (コンソールで操作)カレントディレクトリ=ソースフォルダで、
    heroku login
    heroku create <アプリ名> ... アプリ名はherokuの決まりで、全て小文字。
    → NBのgitの「リモート」には、なぜか生成・関連付けられたheroku上のリモートリポジトリが表示されず。
    よって、NB/git/リモートで、「リモートにプッシュ」は実行できず。
  13. (コンソールで操作)カレントディレクトリ=ソースフォルダで、
    git push heroku master でherokuにデプロイ。

    f:id:mirie0908:20141013175450p:plain

  14. (コンソールで操作)カレントディレクトリ=ソースフォルダで、
    heroku open 
    と実行すると、herokuにデプロイされたアプリが起動し、さらに、ローカルのWEBブラウザ画面が新規に自動的に開き、起動されたアプリのURLが入力されます。
    アプリに問題なければ、アプリの動作後の画面が表示されます。
    アプリになんらかの問題あれば、その旨herokuのメッセージが表示されます。