Назад | Перейти на главную страницу

Ошибка развертывания mina из 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 и socket. Я думаю, что эта строка выполняется до того, как puma завершит демонинизацию и создание файла pid. Но опять же, этот же сценарий отлично работает с другого сервера.

Помещение случайного сна между строками, похоже, помогает:

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"

Но открыты для лучшего решения :)