Capistranoを使って、デプロイ時に必要なGemをインストールさせる方法を紹介します。

Rails-2.1以降、config/environment.rbで、config.gemを指定することによって、アプリケーションが依存するGemを簡単に指定することができるようになりました。
また、ここで指定したGemは、

pre>>
% sudo rake gems:install
<<--

とするだけで、インストールすることができます。

しかし、今のところ、capistranoでデプロイするときに
この設定を考慮して自動的に足りないGemをインストールしてくれたりすることはないので、ちょっと残念な感じでした。

そこで、cap deployを実行した時に、必要なGemをサーバ上でインストールさせるためのレシピを紹介します。

config/deploy.rb

rails>>
namespace :deploy do
task :restart, :roles => :app do
sudo "rake -f #{current_path}/Rakefile gems:install"
end
end
<<--

上記のように、deploy:restartのタスクで、Rakeコマンドを実行させるだけです。
簡単ですね。

posted by genki genki on Sun 7 Sep 2008 at 06:37 with 0 comments