Мина развертывание не удалось из Vagrant Ubuntu/trusty32
Я новичок в рельсах. Провели все это утро, пытаясь устранить эту странную проблему. Я пытаюсь развернуть приложение rails с помощью mina на промежуточном сервере. Мой сервер - Ubuntu/trusty32 14.04, работающий с Vagrant VM. И сервер, который я пытаюсь развернуть, - это CentOS выпуск 6.6. Вот задача развертывания из config/deploy.rb:
task :deploy => :environment do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'rails:assets_precompile'
to :launch do
queue "cd #{deploy_to}/#{current_path} && RAILS_ENV=#{rails_env} bundle exec puma -t #{puma_threads} -e #{rails_env} -d -b unix://#{deploy_to}/shared#{socket_file} --pidfile #{deploy_to}/shared#{pid_file}"
queue "sudo echo -1000 > /proc/`cat #{deploy_to}/shared#{pid_file}`/oom_score_adj"
end
end
end
И это ошибка, которую я получаю.
Puma запускается в одиночном режиме
- Версия 2.11.0 (ruby 2.0.0-p598), кодовое имя: Intrepid Squirrel
- Минимальное количество тем: 0, максимальное количество тем: 5
- Окружающая среда: постановка
- ... режим демона
cat: /var/www/staging/shared/tmp/pids/puma.pid: нет такого файла или каталога
cat: /var/www/staging/shared/tmp/pids/puma.pid: нет такого файла или каталога
bash: строка 176: /proc//oom_score_adj: такого файла или каталога нет
! ОШИБКА: сбой развертывания.
Странная вещь, если я уберу строку queue "sudo echo -1000 > /proc/`cat #{deploy_to}/shared#{pid_file}`/oom_score_adj"
оба файла pid и сокета созданы. Я думаю, что эта строка выполняет до того, как puma завершит демонизацию и создание файла pid. Но с другой стороны, этот же скрипт отлично работает с другого сервера.
1 ответ
Помещение случайного сна между строк, кажется, делает трюк:
queue! "cd #{deploy_to}/#{current_path} && RAILS_ENV=#{rails_env} bundle exec puma -t #{puma_threads} -e #{rails_env} -d -b unix://#{deploy_to}/shared#{socket_file} --pidfile #{deploy_to}/shared#{pid_file}"
queue! "sleep 10"
queue! "sudo echo -1000 > /proc/`cat #{deploy_to}/shared#{pid_file}`/oom_score_adj"
Но открыты для лучшего решения:)