使用Capistrano在Heroku上部署?

ama*_*ain 25 capistrano ruby-on-rails heroku

我还是习惯了Rails开发生态系统.最近我学会了如何使用capistrano使用apache和passenger来部署到我的服务器,我喜欢如何将一组相当复杂的部署指令放到我的deploy.rb中,以便它们通过单个"cap deploy"调用执行,如果出现任何问题,请自动回滚.

现在我正在考虑在Heroku上部署我的项目,我希望能够在那里使用capistrano进行部署.但我一直无法找到有关如何执行此操作的任何文档.可能吗?是否有capistrano任务可以让我在Heroku上自动部署?

这甚至有意义吗?毕竟capistrano以特定的方式工作(ssh进入服务器)并假设一个特定的目录结构(公共/发布/共享等).据我所知,Heroku无法实现这两个目标.但我仍然希望有capistrano的便利.我知道我可以将部署所需的步骤(git push/migrate/restart resque workers ...)放到一个rake任务中,并且我可以通过调用单个命令来部署; 但我不会受益于capistrano交易和回滚,这在我看来非常重要.

我可能遗漏了一些关于这些技术如何融合在一起的非常基础的东西.令我感到惊讶的是,我无法在任何地方找到关于这个主题的任何讨论.谁能分享他们的经历?

Ici*_*cle 37

Heroku使用Git进行部署,并且不是capistrano友好的.事实上,哲学本身是不同的 - Heroku没有"服务器",您可以通过SSH连接或根据需要自定义服务器.

Heroku使用Dynos作为预定义实例,具有特定的部署体系结构,可满足大多数Rails部署需求.您可以使用Heroku执行回滚,备份,迁移等操作,在某些情况下,比普通的capistrano脚本更复杂.

除非您的设置完全不同,否则您可以安全地使用Heroku for Rails(当然只使用Git).如果没有,AWS是更好的选择.

  • Heroku为您提供了一种回滚,备份和运行迁移的方法,正如_any_ system所做的那样.它不会像Capistrano那样提供一种方法来协调/自动化所有过程. (4认同)