В чем разница между bundle install --deployment и bundle pack

Я знаю, что они оба размещают драгоценные камни в вашем приложении в разных местах, но похоже, что bundle install --deployment выполняет более тщательную работу. Могу ли я просто добавить каталог vendor / bundle, который он создает, в систему контроля версий, и все готово?


person concept47    schedule 10.06.2011    source источник


Ответы (3)


Взгляните на описание этих двух на сайте Bundler.

Запуск bundle install --deployment должен выполняться в производственной среде, но при запуске он будет извлекать драгоценные камни из rubygems. Дополнительные сведения см. здесь под заголовком «Развертывание приложения» для этой цели. флага --deployment.

bundle package похожа на старую команду rake rails:gems:freeze из Rails 2.3. Он захватывает драгоценные камни и упаковывает их в вендор / кеш. С сайта сборщика здесь:

Вы можете использовать это, чтобы избежать зависимости от rubygems.org во время развертывания, или если у вас есть частные драгоценные камни, которых нет в общедоступном репозитории.

person Matthew Lehner    schedule 10.06.2011
comment
Спасибо за это, мне потребовалось прочитать и перечитать документ, чтобы полностью понять, о чем вы говорите ... пришлось осознать тот факт, что вам все еще нужно запускать 'bundle install' на производственном сервере , даже если вы используете пакет пакетов и проверяете папку vendor / cache в системе управления версиями - person concept47; 15.06.2011
comment
bundle --install развертывание захватывает драгоценные камни с rubygems. Но что, если вы сделали пакетный пакет, а ваш поставщик / кеш заполнен драгоценными камнями? Мне кажется, что установка пакета - развертывание продолжает поражать rubygems, чтобы получить драгоценные камни. - person Mojo; 10.05.2012

Я использую bundle install --path vendor/bundle в режиме разработки. bundle install --deployment заблокирует ваш Gemfile.lock и не будет обновлять его при изменении Gemfile, поэтому никогда не используйте параметр развертывания в среде разработки. bundle install --no-deployment отключит режим развертывания пакета. Вы можете прочитать это сообщение о правильном использовании пакетов. .

person Gonzih    schedule 10.06.2011
comment
Отличный ответ помог мне лучше понять приведенный выше ответ - person concept47; 15.06.2011
comment
Спасибо, объяснение --no-deployment помогло мне запустить на localhost загруженное приложение с сервера. - person Ricardo Castañeda; 10.03.2012

Я довольно подробно объяснил причину использования флага --deployment mode в своем выступлении на RailsConf 2011. Это сообщение в блоге содержит мои заметки к этому докладу и (я надеюсь) охватывает все аргументы, лежащие в основе пути --deployment работает: http://andre.arko.net/2011/06/11/deploying-with-bundler-notes/

person indirect    schedule 19.08.2013
comment
Спасибо за ссылку. Этому посту уже несколько лет, есть ли какие-то изменения, о которых мне следует знать? - person Rick Smith; 26.01.2016