search
LoginSignup
120
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

bundlerでの運用方法

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

まとめ

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

GemfileとGemfile.lock

Gemfile

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

Gemfile.lock

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

コマンド: bundle install

開発環境

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

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

デプロイ時

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

本番環境
$ bundle install --deployment

bundle install --deploymentすると、vendor/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を利用している場合、開発時にしか使わない。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
120
Help us understand the problem. What are the problem?