Redmine を GlassFish 上で動かす - Ruby on Rails で書かれたプロジェクト管理ツール

Posted by arungupta on May 23, 2008 at 06:08 AM

Redmine日本語サイト)は Ruby on Rails フレームワークベースの Web アプリケーションとして実装されている、柔軟なプロジェクト管理用のツールです。Redmine には複数プロジェクトの管理機能、ロールベースの管理機能、プロジェクトごとに管理できる forums/wikis/SCM といった "ユージュアル・サスペクツ (※訳者注:プロジェクト管理ツールに通常期待されるような一般的な機能)" から LDAP 認証、他言語対応といったエンタープライズ向けの機能まで、とても多彩な機能が備わっています。
Redmine はプラットフォームやデータベースを選ばず、GlassFish v3 上にもとてもいいカンジに配備することができます。

GlassFish v3 はモジュラー性・拡張性が高く、Rails アプリケーションを特に手を加えることなく配備することが可能となっています(War 化する必要もありません)。このブログでは Redmine をGlassFish 上に配備する手順について説明し、あわせていくつかのスクリーンショットをお見せします。
より詳しいドキュメントは Redmine ガイド(英語)にてご覧ください。

1. 次のコマンドを実行し、 Redmine の安定版リリースをチェックアウトします。

~/testbed/redmine >svn co http://redmine.rubyforge.org/svn/branches/0.7-stable redmine-0.7

※訳者注:開発中の最新バージョンを入手したい場合は、以下のように実行してください。

redmine> svn checkout http://redmine.rubyforge.org/svn/trunk/

2. データベースの設定

  • まずはMySQL サーバを起動します:
~/testbed/redmine >sudo mysqld_safe --user root
Starting mysqld daemon with databases from /usr/local/mysql/data
  • 次のようにデータベースを作成しましょう:
~/testbed/redmine/redmine-0.7 >../jruby-1.1.1/bin/jruby -S rake db:create
(in /Users/arungupta/testbed/redmine/redmine-0.7)

※実際には redmine\config\database.yml が database.yml.example という名前になっているため、これを database.yml とRename する必要があります。
また、 database.yml を開いて DB ユーザのパスワードも書き換える必要があります。

  • データベースのマイグレート:
~/testbed/redmine/redmine-0.7 >../jruby-1.1.1/bin/jruby -S rake db:migrate
(in /Users/arungupta/testbed/redmine/redmine-0.7)
== 1 Setup: migrating =========================================================
-- create_table("attachments", {:force=>true})
   -> 0.2840s
-- create_table("auth_sources", {:force=>true})
   -> 0.0540s
-- create_table("custom_fields", {:force=>true})
   -> 0.0430s
-- create_table("custom_fields_projects", {:id=>false, :force=>true})
   -> 0.0080s
-- create_table("custom_fields_trackers", {:id=>false, :force=>true})
   -> 0.0500s

. . .

== 90 ChangeVersionsNameLimit: migrating ======================================
-- change_column(:versions, :name, :string, {:limit=>nil})
   -> 0.0220s
== 90 ChangeVersionsNameLimit: migrated (0.0220s) =============================

== 91 ChangeChangesetsRevisionToString: migrating =============================
-- change_column(:changesets, :revision, :string, {:null=>false})
   -> 0.0210s
== 91 ChangeChangesetsRevisionToString: migrated (0.0230s) ====================

== 92 ChangeChangesFromRevisionToString: migrating ============================
-- change_column(:changes, :from_revision, :string)
   -> 0.0130s
== 92 ChangeChangesFromRevisionToString: migrated (0.0150s) ===================

3. GlassFish v3 のダウンロード / インストールおよび設定

  • ここから GlassFish v3 をダウンロードします。
  • ダウンロードしたファイルを解凍してください。
  • "glassfishv3-tp2/glassfish/config/asenv.conf" ファイルの末尾に以下の記述を追加しましょう:
JRUBY_HOME="/Users/arungupta/testbed/redmine/jruby-1.1.1"

4. Redmine の配備:

~/testbed/redmine >./glassfishv3-tp2/glassfish/bin/asadmin deploy redmine-0.7
Command deploy executed successfully.

... GlassFish のコンソールには次のように表示されます:

May 21, 2008 4:58:30 PM com.sun.enterprise.rails.RailsDeployer registerAdapter
INFO: Loading application redmine-0.7 at /redmine-0.7
May 21, 2008 4:58:30 PM  
INFO: Starting Rails instances
May 21, 2008 4:58:37 PM  
SEVERE: JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
May 21, 2008 4:58:42 PM com.sun.grizzly.jruby.RubyObjectPool$1 run
INFO: Rails instance instantiation took : 11979ms
May 21, 2008 4:58:42 PM com.sun.enterprise.v3.deployment.DeployCommand execute
INFO: Deployment of redmine-0.7 done is 12091 ms

これでアプリケーションを使う準備は完了です!私が試してみた時のスクリーンショットをいくつかお見せしましょう。

Cannot resolve external resource into attachment.

Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.
Cannot resolve external resource into attachment.

なお、Rails powered by the GlassFish Application Server (英文)には、 Ruby-on-Rails の伝統的な配備モデルに変わって GlassFish を採用すべき理由が余すところなく説明されています。
また、このアプリケーションについては、 Sang "with Passion" Shin(英語) によるFREE 20-week Ruby-on-Rails course (英語) の一部である LAB 5539 でも解説されています。


日本語翻訳: Kana

英文