1

我正在尝试使用部署程序 vlad 部署 Rails 应用程序。

我正在使用 nginx 和乘客。

我对 vlad:start_app 任务有疑问。

部署时出现以下问题

touch: cannot touch `/var/www/mysite.com/releases/20100623130302/tmp/restart.txt': No such file or directory
rake aborted!
execution failed with status 1: ssh mysite.com touch /var/www/mysite.com/releases/20100623130302/tmp/restart.txt

这个问题很明显,因为版本中的 20100623130302 不存在。

我宁愿使用以下任务,但不能通过将其放在我的 config/deploy.rb 文件中来覆盖默认的 vlad:start_app 任务。

namespace :vlad do

  desc 'Restart Passenger'
    remote_task :start_app do
    run "touch #{current_path}/tmp/restart.txt"
  end

end

任何帮助表示赞赏。我想到的选项是要么让默认的 vlad 任务工作,要么以某种方式覆盖默认的 vlad 任务。

4

2 回答 2

0

RAILS_ROOT/Rakefile是文件。

于 2010-06-23T13:54:15.867 回答
0

要覆盖任务,您必须首先删除前一个任务,因为再次定义相同的任务只会创建第二个任务,该任务将在第一个任务之后运行。

这是vlad 网站上的一个示例,如何替换任务:

namespace :vlad do
  # Clear existing update task so that we can redefine instead of adding to it.
  Rake.clear_tasks('vlad:update')

  remote_task :update, :roles => :app do
    #custom update stuff
  end
end
于 2010-06-23T21:44:07.910 回答