Служба puma/runit этого приложения rails работала до тех пор, пока я не попытался развернуть гем Sidekiq 3.5.3 с моим приложением через шеф-повара.
В моем рецепте я установил 2.0.0p576 через рецепт ruby_build
which ruby #gives me /usr/bin/ruby
/usr/bin/ruby -v #return 2.0.0p576
шаблоны/по умолчанию/sv-myapp-run.erb
echo "$(ruby -e 'print RUBY_VERSION')" >> check_ruby.txt #returns 2.0.0
exec chpst -u root:root bundle exec puma --config config/puma.rb
В журнале службы runit я получаю это сообщение ниже
2015-11-04_06:23:50.99541 /var/lib/gems/1.9.1/gems/sidekiq-3.5.3/lib/sidekiq.rb:3:in `<top (required)>': Sidekiq 3.5.3 does not support Ruby 1.9. (RuntimeError)
Поскольку это не происходит локально, я решил, что это как-то связано с Chef и с тем, как я устанавливаю Ruby на хосте.
Я также пытался установить rvm , очистить систему ruby и подтвердить значение по умолчанию (глобальное и локальное) как> 2.0 - ничего из этого пока не изменило.
Я заметил, что в /usr/local/bin/puma объявление
#!/usr/bin/env ruby1.9.1
Я отредактировал это, чтобы он был рубиновым, затем перезапустил службу, но без изменений. Есть ли способ заставить Puma работать под ruby +> 2.0?
ruby_build_ruby '2.0.0-p576'
link "/usr/bin/ruby" do
to "/usr/local/ruby/2.0.0-p576/bin/ruby"
end
gem_package 'bundler' do
options '--no-ri --no-rdoc'
end
include_recipe "runit"
deploy_revision("/opt/deploy") do
revision "develop"
repository "removed"
user "root"
action :deploy
shallow_clone true
keep_releases 3
rollback_on_error true # remove release if callbacks failed
migrate true
migration_command "rake db:migrate"
before_migrate do
execute "bundle install" do
command "bundle install"
cwd "#{release_path}"
user "root"
end
end
#restart_command "rails server -b 0.0.0.0"
# disable default behavior
symlink_before_migrate.clear
create_dirs_before_symlink.clear
purge_before_symlink.clear
symlinks.clear
end
Ubuntu 14.04, сборщик 1.10.6
Спасибо!