Я хочу установить awesome_print в свое dockerized ruby-приложение. Бег
docker-compose run application_name gem install awesome_print
говорит: "awesome_print-1.8.0 успешно установлен", однако он не отображается в моем Gemfile даже после запуска
docker-compose run application_name bundle install
Как я могу установить awesome_print в мое докеризованное приложение?
Не могли бы вы рассказать, как это сделать?
вы можете поделиться своим dockerfile?
Gemfile - это список зависимостей для bundler. Он создается и поддерживается человеком, и на него не влияют команды gem.





Команда RubyGems gem на самом деле является гораздо более старым менеджером пакетов, предшествующим сборщику.
При запуске gem install foo гем просто устанавливается в ваш локальный репозиторий (где-то в папке). Он не добавляет драгоценный камень в ваш Gemfile и не выполняет разрешение дерева зависимостей, которое делает Bundler, чтобы гарантировать, что ваши драгоценные камни действительно совместимы.
Bundler построен на основе gem. Чтобы установить драгоценные камни с помощью бандлера (что вы почти всегда хотите делать), вы добавляете гем в свой Gemfile и запускаете bundle install.
gem 'awesome_print', '~> 1.8'
Bundler также имеет команду bundle add, которая добавит гем в Gemfile и установит ваш пакет, например:
bundle add awesome_print --version "~> 1.8"
вы можете добавить
CMDв свой файл докера, который запускает скрипт, устанавливающий этот гем