bundle-cache - Упакуйте необходимые файлы .gem в свое приложение.
bundle cache
alias: package, pack
Скопируйте все файлы .gem, необходимые для запуска приложения, в каталог vendor/cache. В будущем при запуске bundle install(1) bundle-install.1.html предпочтительнее использовать гемы в кеше, чем на rubygems. орг.
Команда bundle cache может также упаковывать зависимости :git и :path помимо файлов .gem. Это необходимо явно включить с помощью параметра --all. После использования опция --all будет запомнена.
При использовании драгоценных камней с разными пакетами для разных платформ Bundler поддерживает кэширование драгоценных камней для других платформ, где Gemfile был разрешен (т. е. присутствует в файле блокировки) в vendor/cache. Это необходимо включить с помощью параметра --all-platforms. Этот параметр будет запомнен в вашей локальной конфигурации сборщика.
По умолчанию, если вы запустите bundle install(1) bundle-install.1.html после запуска bundle cache(1) bundle-cache.1.html, сборщик по-прежнему будет подключаться к rubygems.org, чтобы проверить, существует ли гем для какой-либо платформы для любого из гемов в vendor/cache.
Например, рассмотрим этот Gemfile(5):
source "https://rubygems.org"
gem "nokogiri"
Если вы запустите bundle cache под C Ruby, сборщик получит версию nokogiri для платформы "ruby". Если вы выполняете развертывание в JRuby и запускаете установку пакета, сборщик вынужден проверить, существует ли nokogiri на платформе "java".
Несмотря на то, что гем nokogiri для платформы Ruby технически приемлем для JRuby, он имеет расширение C, которое не работает на JRuby. В результате пакет по умолчанию по-прежнему будет подключаться к rubygems.org, чтобы проверить, есть ли у него версия одного из ваших драгоценных камней, более специфичная для вашей платформы.
Эта проблема также не ограничивается платформой "java". Аналогичная (распространенная) проблема может возникнуть при разработке в Windows и развертывании в Linux или даже при разработке в OSX и развертывании в Linux.
Если вы точно знаете, что драгоценные камни, упакованные в vendor/cache, подходят для платформы, на которой вы работаете, вы можете запустить bundle install --local, чтобы не проверять наличие более подходящих драгоценных камней и используйте те, что находятся в vendor/cache.
Один из способов убедиться, что у вас есть версии всех ваших драгоценных камней для платформы, — запустить bundle cache на идентичной машине и проверить драгоценные камни. Например, вы можете запустить bundle cache на идентичном промежуточном блоке во время промежуточного процесса и проверить vendor/cache перед развертыванием в рабочей среде.
По умолчанию пакетный кеш(1) bundle-cache.1.html извлекает и также устанавливает драгоценные камни в расположение по умолчанию. Чтобы упаковать зависимости в vendor/cache, не устанавливая их в локальную папку установки, вы можете запустить bundle cache --no-install.
В Bundler 2.1 cache взял на себя функции package, и теперь package и pack являются псевдонимами кеш.