質問: capistrano だけを実行するデプロイ用のサーバーがあるのですが Gemfile を共有してると bundle install を通すためだけに必要のないサービスを全部インストールしないといけなくなります 例えば MySQL にアクセスするのに Gemfile に gem 'mysql2' って書かれてると libmysql.so とかがないと bundle install 通らないので capistrano が実行できません でも capistrano 実行するだけなら MySQL って必要ないんですが 無駄なものをインストールしなくて済むような回避方法ってないんでしょうか capistrano 実行だけ別の Gemfile を参照するとか capistrano 実行時だけ環境名を変更して Gemfile 中に `group not :deploy do` のような感じでデプロイ環境じゃない場合だけ有効になるような記述方法はないでしょうか
回答: `BUNDLE_GEMFILE` の環境変数を指定しながら bundle を実行すると、そのファイルを見にいってくれます。なので、 capistrano だけを追加した、例えば `Gemfile.cap` などを用意し、 ``` BUNDLE_GEMFILE=Gemfile.cap bundle exec cap production deploy ``` などをデプロイ用のコマンドとすれば、ひとまず要件である「Gemfile を分離する」は実現できそうだな、と思っています。 参考: