簡體   English   中英

使用Capistrano時,我應該在哪里部署我的部署任務?

[英]Where should I put my deployment tasks when using Capistrano?

我正在使用Capistrano來部署我在Sinatra和Rails中構建的應用程序。 有一段時間我現在已經在部署到config/deploy.rb期間編寫了我需要完成的所有工作。 看起來我只是在這里寫Rake。 我想知道如果我把這些放在正確的地方,或者如果我可以通過我的部署更加“Capistranorish”,我是否可以得到一些建議。

以下是我在這里做的一些事情。 我寫了幾乎所有我需要部署在這里做的事情。

# deploy.rb
task :initctl_reload_configuration do
  on roles(:app), in: :sequence do
    execute "sudo initctl reload-configuration"
  end
end

task :rebuild_sitemap_no_ping do
  on roles(:app), in: :sequence do
    execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh:no_ping"
  end
end

task :rebuild_sitemap do
  on roles(:app), in: :sequence do
    execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh"
  end
end

task :restart_services do
  on roles(:app), in: :sequence do
    execute "sudo service tomcat6 restart"
    execute "sudo service sunspot-solr restart"
    execute "sudo service app-#{environment} restart"
    execute "sudo service nginx restart"
  end
end

如果這就是你所擁有的,那么將它留在deploy.rb

如果你真的想在某個地方移動這些任務, Capfile內容(你可能在項目的根目錄下)應該給你一個提示:

# Load custom tasks from `lib/capistrano/tasks' if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

所以只需在lib/capistrano/tasks/創建一個以.rake結尾的文件就可以了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM