我想运行cap开发部署:setup和cap development deploy来为我的rails应用程序设置开发环境。为了做到这一点,我将不得不从远程机器中删除项目文件夹,有没有办法使用cap以某种方式自动执行此操作。
在完全部署之前,我基本上想要删除远程计算机中的app文件夹。
答案 0 :(得分:0)
before 'deploy:setup', 'removecode'
task :removecode do
run "rm -rf <path>", :shell => fetch(:rvm_shell)
end
将此代码添加到deploy.rb文件中,这将在deploy:setup之前调用 通过这种方式,您可以创建任务并执行您想要执行的操作
答案 1 :(得分:0)
Capistrano app文件夹的结构如下:
releases
- 包含目前为止进行的每个部署的单独文件夹(使用提交ID或时间戳命名)current
- 链接到releases
shared
- 部署之间使用的共享日志,gem文件和tmp
现在你真的想清理整个app文件夹吗?这可能很危险,因为你会丢失原木。
current
只是一个符号链接,它仅指向最新版本。
如果要清理旧版本,请检查this answer。您可以将keep_releases
设置为1。
如果你想删除共享文件夹,那么你必须编写自己的Capistrano钩子,如@ Strik3r所述。