Capistrano: «cap deploy» не вступает в силу при развертывании приложения Rails - PullRequest
2 голосов
/ 11 марта 2012

Я развертываю приложение на рельсах, используя Capistrano. После внесения изменений в мое приложение я выполняю «cap deploy», и оно работает нормально, но изменения не вступают в силу. Мне всегда нужно делать «cap deploy: stop» и «cap deploy: start», и тогда все в порядке. Поэтому я думаю, что это связано с «cap deploy: restart», который запускается при развертывании изменений.

вот мой deploy.rb: deploy.rb gist

Надеюсь, что кто-то может помочь.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Только что заметил в строке (105) в вашей сущности

task :restart, :except => { :no_release => true } do
  if File.exist?("/tmp/unicorn.example.pid")
    run "kill -s USR2 `cat /tmp/unicorn.example.pid`"
  end
end

что вы проверяете существование файла pid на вашем локальном компьютере. Вместо этого вы должны сделать это на вашем сервере. Попробуйте изменить его на

task :restart, :except => { :no_release => true } do
  run "test -f /tmp/unicorn.example.pid && kill -s USR2 `cat /tmp/unicorn.example.pid`"
end

Но помните, что он все равно не работает, если отсутствует файл pid.

1 голос
/ 11 марта 2012

Если вы перезапустите единорога с помощью сигнала USR2, он автоматически не узнает правильную среду для упаковщика. Посмотрите эту суть (особенно блок before_exec ) и соответствующим образом настройте конфигурацию единорога.

https://gist.github.com/534668

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...