Я знаю, что они оба размещают драгоценные камни в вашем приложении в разных местах, но похоже, что bundle install --deployment выполняет более тщательную работу. Могу ли я просто добавить каталог vendor / bundle, который он создает, в систему контроля версий, и все готово?
В чем разница между bundle install --deployment и bundle pack
Ответы (3)
Взгляните на описание этих двух на сайте Bundler.
Запуск bundle install --deployment
должен выполняться в производственной среде, но при запуске он будет извлекать драгоценные камни из rubygems. Дополнительные сведения см. здесь под заголовком «Развертывание приложения» для этой цели. флага --deployment
.
bundle package
похожа на старую команду rake rails:gems:freeze
из Rails 2.3. Он захватывает драгоценные камни и упаковывает их в вендор / кеш. С сайта сборщика здесь:
Вы можете использовать это, чтобы избежать зависимости от rubygems.org во время развертывания, или если у вас есть частные драгоценные камни, которых нет в общедоступном репозитории.
Я использую bundle install --path vendor/bundle
в режиме разработки. bundle install --deployment
заблокирует ваш Gemfile.lock и не будет обновлять его при изменении Gemfile, поэтому никогда не используйте параметр развертывания в среде разработки. bundle install --no-deployment
отключит режим развертывания пакета. Вы можете прочитать это сообщение о правильном использовании пакетов. .
Я довольно подробно объяснил причину использования флага --deployment mode в своем выступлении на RailsConf 2011. Это сообщение в блоге содержит мои заметки к этому докладу и (я надеюсь) охватывает все аргументы, лежащие в основе пути --deployment работает: http://andre.arko.net/2011/06/11/deploying-with-bundler-notes/