2010-06-23 6 views
1

J'essaye de déployer une application de rails using vlad le déployer. J'utilise nginx et le passager.vlad le déployeur vlad: start_app avec le numéro de passager

J'ai un problème avec la tâche vlad: start_app.

Quand je déploie je reçois la question suivante

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 

La question est évidente en ce que le 20100623130302 dans les versions n'existe pas.

Je préfère utiliser la tâche suivante, mais je ne peux pas remplacer la tâche par défaut vlad: start_app en la plaçant dans mon fichier config/deploy.rb.

namespace :vlad do 

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

end 

Toute aide appréciée. Les options que je propose sont soit de faire fonctionner la tâche vlad par défaut, soit de contourner la tâche vlad par défaut.

Répondre

0

RAILS_ROOT/Rakefile est le fichier.

+0

je l'ai déjà essayé mais les tâches de vlad sont chargés de la gemme vlad comme ... commencent exigent « vlad » Vlad.load (: app =>: passager,: scm => "git") sauvetage LoadError => e met "Impossible de charger Vlad # {e}." fin Aussi remote_task est quelque chose de chargé avec vlad, donc les tâches ne peuvent pas être définies en utilisant remote_task jusqu'à ce que vlad soit chargé, à quel point viennent la tâche vlad: start_app existante aussi! –

0

Pour remplacer une tâche, vous devez d'abord supprimer la précédente en définissant à nouveau la même tâche, mais en créant une seconde tâche qui sera exécutée après la première.

Voici un exemple de la vlad website comment remplacer une tâche:

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