2010-06-23 78 views
1

我试图部署使用vlad部署者的rails应用程序。vlad部署者vlad:start_app与乘客问题

我正在使用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不存在明显。

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

namespace :vlad do 

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

end 

任何帮助表示赞赏。我的选项是让默认的vlad任务工作,或者重写默认的vlad任务。

回答

0

RAILS_ROOT/Rakefile是该文件。

+0

我已经尝试过,但是弗拉德任务都在弗拉德宝石装像... 开始 要求“弗拉德” Vlad.load(:app =>:passenger,:scm =>“git”) rescue LoadError => e puts“Unable to load Vlad#{e}”。 end 另外remote_task是加载了vlad的东西,所以无法使用remote_task定义任务,直到vlad加载到现有的vlad:start_app任务为止! – 2010-06-23 16:44:23

0

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

下面是来自vlad website一个例子如何更换一个任务:

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