![](/img/trans.png)
[英]Rails 5 deploy to VPS - capistrano error “Don't know how to build task 'deploy:setup' ”
[英]Don't know how to build task 'environment' When i deploy my app to vps in Capistrano task
我使用 capistrano 將我的應用程序部署到 vps。 一切正常,但只有 :environment 任務。
這是我的代碼
namespace :deploy do
desc 'Clear memcache'
task clear_memcache: :environment do
on roles(:app) , in: :sequence, wait: 2 do
::Rails.cache.clear
CACHE.flush
end
end
after :finishing, :clear_memcache
end
但我總是收到這個錯誤。
#<RuntimeError: Don't know how to build task 'environment' (see --tasks)>
我怎樣才能解決這個問題? 謝謝!
我認為您正在混合兩個概念。 一個耙子任務和一個 capistrano 任務。 Rake 任務確實使用:environment
子任務,而 capistrano 任務則不使用。 Capistrano 任務不能(AFAIK)在服務器上的 rails 應用程序的上下文中直接調用 ruby 代碼,這就是 rake 任務所做的。
您實際上可能想要的是定義一個清除緩存的 rake 任務和一個將在部署服務器上調用 rake 任務的 capistrano 任務。
試試這些:
清除緩存的 rake 任務:
# put this in Rakefile or any other rake file under lib/tasks
desc 'Clear memcache'
task clear_memcache: :environment do
::Rails.cache.clear
CACHE.flush
end
在服務器上調用 rake 的 capistrano 任務:
# config/deploy/production.rb
namespace :deploy do
desc 'Clear memcache'
task :clear_memcache do
on roles(:app) , in: :sequence, wait: 2 do
within release_path do
with rails_env: fetch(:rails_env) do
execute 'rake', 'clear_memcache'
end
end
end
end
after :finishing, :clear_memcache
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.