« Jenkinsをバッチ監視ツールとして運用する事例 | トップページ | Jenkinsをジョブ管理ツールとして使うアイデア »

2012/10/21

Redmine on JRuby part3~RedmineはJRuby+Tomcatで動かす方が簡単

別Blogを参考にして、Redmine2.1.2をwar化してTomcatに入れたら、すぐにセットアップできたのでメモ。
JRubyすごい!

【元ネタ】
u6k Apps開発ログ: Redmineをwar化 (1) とりあえずRedmine+JRubyを動かす

u6k Apps開発ログ: Redmineをwar化 (2) warblerでwar化する

u6k Apps開発ログ: Redmineをwar化 (3) Tomcat上で動作させる

redmine.warの作り方が分からない人は、以下からTomcat付きでダウンロードして、Tomcatを起動すればいい。
http://localhost:8080/redmine/ にアクセスするだけで、すぐにRedmineを試すことができる。

u6kapps / redmine-war / Downloads ? Bitbucket

上記のBlogを真似て自分もredmine.warを作ってみた。
Javaに慣れている開発者ならば、30分もかからないだろう。

【環境】
Windows7
JDK1.7.0_06-b24
JRuby1.6.8
Redmine2.1.2
Tomcat7.0.23

【JRubyのWebrickで動かす手順】
jgem install bundler --no-rdoc --no-ri

%REDMINE_HOME%\config\database.ymlを修正。
この例では、DBは、MySQLではなく、sqlite3にする。

production:
adapter: sqlite3
database: db/production.sqlite3

bundle install --without development test

cd %REDMINE_HOME%
rake generate_secret_token

rake db:migrate SET RAILS_ENV=production

jruby script/rails server webrick -e production

http://localhost:3000/
でアクセスすればOK。

【redmine.warをTomcatで動かす手順】
jgem install warbler

cd %REDMINE_HOME%
warble config

database.ymlの修正は上記と同じ。
warble.rbを修正
config.dirs = %w(app config lib log vendor tmp db files plugins)

warble

redmine.warができる

Tomcatのwebappsにredmine.warを配置する。
startup.batでTomcat起動。

http://localhost:8080/redmine/
にアクセスすればOK。
アクセスした設定画面は以下の通り。

Redmine212onjruby

3~4年前はJRubyでRedmineを動かすために四苦八苦していた。
その頃の試行錯誤は以下に書いている。

Redmine on JRuby: プログラマの思索

Redmine on JRuby part2: プログラマの思索

でも、最新のJRubyとRedmineを使えば、簡単にデプロイできる時代のようだ。

CentOSはRubyのライブラリが古いため、RPMを自作したり、gemのバージョン依存に苦しんだりしていまいがちだが、JRubyならば、JDKさえ入れていれば簡単に動く。
しかも、JavaのWebアプリケーションサーバーはどれも業務システムで10年以上の歴史があるので運用ノウハウも多いし、保守できる技術者も多い利点がある。

Redmineのバージョンアップに伴い、RubyのライブラリをVerUpするのは結構面倒だが、JRubyならば、JRubyのバージョンごとに作ればいい。
Redmineをwar化できるならば、Redmineのバージョンごとにwarを作って移行検証するのも可能になる。

今後のRedmineの動作検証は、Redmine on JRubyでやってみようと思う。

|

« Jenkinsをバッチ監視ツールとして運用する事例 | トップページ | Jenkinsをジョブ管理ツールとして使うアイデア »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Jenkinsをバッチ監視ツールとして運用する事例 | トップページ | Jenkinsをジョブ管理ツールとして使うアイデア »