使用capistrano命令进行部署时,如何避免共享捆绑文件夹下的多个宝石。大多数情况下,当我将gem从一个版本迁移到另一个版本时,共享包文件夹仍然包含这两个版本,从而导致问题。我们该如何避免这种情况?
答案 0 :(得分:4)
我不确定我是否曾见过这样的冲突。但我已经扩展了capistrano deploy:cleanup
任务,清理过时的捆绑宝石:
after "deploy:cleanup", "bundle:clean"
namespace :bundle do
task :clean, :except => {:no_release => true} do
bundle_cmd = fetch(:bundle_cmd, "bundle")
run "cd #{latest_release} && #{bundle_cmd} clean"
end
end
如果它导致您发生冲突,您可以在deploy
之后执行此操作。
答案 1 :(得分:1)
namespace :bundle do
task :clean do
on roles(:web) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :bundle, :clean
end
end
end
end
end
after "deploy:cleanup", "bundle:clean"
〜