2

我想运行 cap development deploy:setup 和 cap development deploy 来为我的 rails 应用程序设置开发环境。为了做到这一点,我将不得不从远程机器上删除项目文件夹,有没有办法使用 cap 以某种方式自动执行此操作。

我基本上想在进行完整部署之前删除远程机器中的 app 文件夹。

4

2 回答 2

0
before 'deploy:setup', 'removecode'

task :removecode do
    run "rm -rf <path>", :shell => fetch(:rvm_shell)
end

将此代码添加到您的 deploy.rb 文件中,这将在 deploy:setup 之前调用,这样您就可以创建任务并执行您想做的任何事情

于 2013-05-23T06:31:02.817 回答
0

Capistrano 应用程序文件夹的结构如下:

  • releases- 包含迄今为止进行的每个部署的单独文件夹(使用提交 ID 或时间戳命名)
  • current- 链接到最新的部署文件夹下releases
  • shared- 共享日志、gem 文件以及tmp部署之间使用的文件

现在您真的要清理整个应用程序文件夹吗?这可能很危险,因为您会丢失日志。

current只是一个符号链接,它仅指向最新版本。

如果您想清理旧版本,请查看此答案。您可以设置keep_releases为 1。

如果您还想删除共享文件夹,那么您必须编写自己的 Capistrano 挂钩,如 @Strik3r 所述。

于 2013-05-24T03:37:21.373 回答