【问题标题】:Deploying on Heroku with Capistrano?使用 Capistrano 在 Heroku 上部署?
【发布时间】:2012-10-12 00:25:46
【问题描述】:

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

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

这有意义吗?毕竟 capistrano 以特定的方式工作(ssh 进入服务器)并假设特定的目录结构(public/releases/shared 等)。据我所知,这两种情况在 Heroku 中都是不可能的。但我仍然想享受 capistrano 带来的便利。我知道我可以将部署所需的步骤(git push/migrate/restart resque workers...)放入单个 rake 任务中,并且我可以通过调用单个命令来方便地进行部署;但我不会享受 capistrano 事务和回滚的好处,这在我看来非常重要。

我可能遗漏了一些关于这些技术如何组合在一起的基本知识。让我有点吃惊的是,我在任何地方都找不到关于这个主题的任何讨论。有人可以分享他们的经验吗?

【问题讨论】:

    标签: ruby-on-rails heroku capistrano


    【解决方案1】:

    Heroku 使用 Git 进行部署,并且对 capistrano 不友好。事实上,哲学本身是不同的——Heroku 没有“服务器”,您可以通过 SSH 访问或根据您的需要自定义服务器。

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

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

    【讨论】:

    • Heroku 为您提供了一种回滚、备份和运行迁移的方法,就像 任何 系统一样。它确实像 Capistrano 那样提供了一种编排/自动化所有流程的方法。
    猜你喜欢
    • 2012-08-06
    • 2011-06-08
    • 1970-01-01
    • 2013-07-25
    • 2018-01-01
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多