GrailsアプリをHerokuで公開する
Heroku とは何か?についての解説はGoogle先生に。
今日は アカウント登録から、サンプルアプリのデプロイまでをやってみます。
Grailsのバージョンは2.1.1を使用。(※1. 2012/01/03現在、ver.2.1.3はエラーとなる)
公式サイトの手順はこちら
- アカウントを取得する
- Heroku Toolbelt をインストールする
- アプリに Grails Heroku plugin をインストールし、BuildConfig.groovy を編集する
- Herokuに作成したリモートリポジトリにアプリをPush
- アプリを起動する
以下、詳細。
3.Grails プラグインインストール&設定
インストールはIDEAのGUIを使用してみた。
この後表示される画面で Heroku Integration の [ Enable ] にチェックをいれ、[ Apply changes ] を押下する。
しばらくするとインストールが完了する。
BuidConfig.groovy の plugins に下記を追記する
(※2. 下3つを記述していなかった場合、エラーが発生した)
compile ':heroku:1.0.1'
compile ':cloud-support:1.0.8'
compile ":webxml:1.4.1"
compile ":database-session:1.1.2"
また、同ファイルの dependencies に下記を追記する
(※3. DBに接続しない場合も記述が必要)
runtime 'postgresql:postgresql:8.4-702.jdbc3'
詳しくは公式サイトを参照
修正後、ローカルのGitに commit する。
4.Deploy
コマンドプロンプトを立ち上げ、下記コマンドを実行
(Heroku Toolbelt をインストールすると heroku コマンドが使用できる)
$ heroku login
メールアドレスとパスワードを入力後、public key を作成するか聞かれるので、yを入力し作成する。
$ heroku keys:add
作成したキーを適用します。
(Herokuの公開鍵についてはこちらのサイトが詳しいです。)
$ git push heroku master
作成したHerokuのリポジトリへPush
(※4. .gitignoreを作成する際、
公式手順の tailored for Grails リンク先のソースをまるまるコピペするとエラーになるので注意!)
5. アプリ起動
$ heroku open
ヒャッハー!!Grailsアプリが起動したぜぃっ♪
(※5. 設定をしくじっているときは503エラーが発生する)
$ heroku logs
エラー時は上記コマンドでログを確認する
※1. 2012/1/3現在、Ver.2.1.3には未対応のため下記エラーが発生した。
-----> Grails 2.1.3 app detected
WARNING: The Grails buildpack is currently in Beta.
-----> Installing Grails 2.1.3.....
-----> Error installing Grails framework or unsupported Grails framework version
specified. Please review Dev Center for a list of supported versions.
! Heroku push rejected, failed to compile Grails app
※2. herokuプラグイン以外を記述していない場合、下記エラーが発生
2013-01-02T23:28:25+00:00 app[web.1]: Caused by:
2013-01-02T23:28:25+00:00 app[web.1]: java.lang.IllegalStateException: The datab
ase-session plugin requires that the webxml plugin be installed
※3. DB接続を行わないアプリでも、jdbcがないと怒られる。
2013-01-02T23:40:08+00:00 app[web.1]: org.springframework.jdbc.support.MetaDataA
ccessException: Error while extracting DatabaseMetaData; nested exception is org
.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.post
gresql.Driver'
※4. applicationContext.xml がアップロードされていないと怒られる。.gitignore の
/web-app/WEB-INF をコメントアウトすればOK!
※5. 設定をしくじっている場合、503エラーとなる。
HTTP ERROR: 503
Problem accessing /. Reason:
Service Unavailable
Powered by Jetty://
- 作者: 竹迫良範,Jxck,じょさん,後藤秀宣,藤原俊一郎,奥野幹也,堤智代,森田創,中島聡,A-Listers,はまちや2,相澤歩,柴田博志,池田尚史,梅澤雄一郎,九岡佑介,近藤宇智朗,佐藤鉄平,mala,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2012/10/24
- メディア: 大型本
- 購入: 12人 クリック: 157回
- この商品を含むブログ (10件) を見る
- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 92回
- この商品を含むブログ (17件) を見る