therubyracer не в состоянии построить на героку
Я создал PoC-приложение Rails 3.1, которое также использует haml, адаптировав примеры из книги railstutorial.org, и локально все работает отлично.
Но когда я пытаюсь подтолкнуть к героку, therubyracer не удается собрать на сервере ( полный вывод):
Installing therubyracer (0.8.2) with native extensions /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
Мой Gemfile довольно стандартный, поэтому я был бы очень признателен, если бы кто-нибудь помог мне понять, что происходит не так, и, возможно, помог бы мне найти решение.
3 ответа
Heroku больше не требует, но настоятельно рекомендует использовать therubyracer
или же therubyracer-heroku
, так как эти драгоценные камни используют очень большой объем памяти.
Если вы используете их, ваше следующее развертывание не удастся!
У вас есть 2 варианта:
добавлять
'therubyracer', :platforms => :ruby
кgroup :assets
и обновите свою версию ruby. Затем удалите свой Gemfile.lock и запуститеbundle install
,Бежать
assets:precompile
в вашей локальной машине и отправьте их к герою (не забудьте удалить драгоценные камни therubyracer из производства);- Конвейер ресурсов Rails по умолчанию поддерживает язык Sass. Вместо
rails-bootstrap
драгоценный камень (МЕНЬШЕ) вы можете использоватьbootstrap-sass-rails
Эти ответы устарели. Теперь вы можете просто использовать therubyracer
в обеих средах, если у вас есть версия '>= 0.11.2'
Я должен отметить, что я являюсь автором therubyracer и использую его в нескольких производственных приложениях heroku как во время компиляции ресурсов, так и во время выполнения
Вам нужно использовать https://github.com/aler/therubyracer-heroku.
Просто определите пару групп в вашем Gemfile, чтобы установить правильную группу там, где это необходимо.
group :development, :test do
gem 'therubyracer'
end
group :production do
gem 'therubyracer-heroku'
end