bundlerでの運用方法

  • 118
    Like
  • 0
    Comment
More than 1 year has passed since last update.

とりあえず現時点での理解をまとめてみた。

まとめ

  • Gemfile.lockはバージョン管理しよう
  • デプロイするときは--deploymentオプションを使おう

GemfileとGemfile.lock

Gemfile

何をインストールするべきか記述する。
開発時に参照されるファイル

Gemfile.lock

何がインストールされたか、どのような依存関係があったかが記述される。
デプロイ時に参照されるファイル。

コマンド: bundle install

開発環境

開発環境
$ bundle install #--path vender/bundle

必要なら--pathを指定して、特定のディレクトリにgemをインストールさせる。
bundle install時に生成されたGemfile.lockは、デプロイ時に利用するので必ずバージョン管理する。

デプロイ時

参考: http://gembundler.com/man/bundle-install.1.html#DEPLOYMENT-MODE

本番環境
$ bundle install --deployment

bundle install --deploymentすると、vender/bundle以下にgemがインストールされる。
また、.bundle/configにBUNDLE_FROZEN="1"が追加される。
--deploymentオプションをつけた場合は、Gemfile.lockを元にgemがインストールされる。
--deployment付きで実行された環境で、Gemfileを書き換えて新たにgemをインストールすることはできない。

コマンド: bundle update

bundle updateはGemfile.lockの記述を無視して、GemfileでのGemの指定やそのバージョン指定などに基づいて、gemを更新する。
更新時にGemfile.lockを更新する。
--deploymentを利用している場合、開発時にしか使わない。