0

Rails 4 アプリを Capistrano でデプロイするためにRecapを使用しようとしています。docsでは、次のように述べています。

ruby レシピ [...] には、Procfile で定義されたプロセスの開始と再起動を行うフォアマンのサポートが含まれています。

私のアプリでは、デプロイごとに 2 つのプロセスを再起動する必要があります。

  1. 乗客
  2. 遅延ジョブ

Gemfile に追加gem 'foreman'しました。Procfile での試みは次のとおりです。

# Procfile
web: sudo service nginx restart
worker: bin/delayed_job restart

しかし、展開時に何も再起動されないため、明らかに間違っています。

正しい Procfile はどのようになりますか?

あるいは、これがそもそも間違ったアプローチである場合、これらのプロセスがデプロイごとに再起動されるようにするためのより良いアプローチは何でしょうか?

4

1 に答える 1

0

私はフォアマンをあきらめ、代わりに次のコードを使用することになりました。

(別のユーザーとしてサーバー上でdelayed_jobを開始し、アプリユーザーには他のユーザーのプロセスを停止する権限がないため、最初にサーバー上のdelayed_jobを手動で停止する必要がありました。)

# in Capfile

namespace :passenger do
  task :restart do
    run "touch /home/intouchsys/app/tmp/restart.txt"
  end
end

namespace :delayed_job do
  task :restart do
    as_app "bin/delayed_job restart"
  end
end

after "deploy", "passenger:restart"
after "deploy", "delayed_job:restart"
于 2014-04-07T03:23:05.097 に答える