0

我一直在为一个非技术客户做一个 Rails 项目。但是,他们希望我发送一个部署脚本,他们的网络人员将使用该脚本来部署应用程序。

我一直在使用 capistrano。但问题是,上限严重依赖于应用程序本身。我需要的是一个脚本,它使用 cap 和 config/deploy.rb 但需要在他们的本地系统上进行最少的设置。主干中的 repo 是基于 git 的。

如果这不能通过 capistrano 实现,那么任何人都知道任何其他部署实用程序,那会让我的东西 cap 可以独立工作吗?..(我创建符号链接并在我的 :after_update 块中运行一些 rake 任务)。

谢谢,哈桑

4

3 回答 3

0

如果设置运行 ruby​​ 环境cap deploy不是“网络人”愿意做的事情,那么您将面临一场艰苦的战斗。一些有助于缓解这种情况的建议:

  • 让他们使用railsready脚本来设置他们的环境
  • 给他们一个可用于部署实例的虚拟机(可能是 Vagrant 盒子?)
  • 如果您正在进行基于 git 的部署,您要么必须设置部署密钥(并将其提供给他们),要么将它们添加到您的 github 项目(假设您使用的是 github)
  • 考虑捆绑整个项目并作为 tarball 交付(或将其放入 rpm)并让它们以这种方式部署(一种快速而肮脏的方法是部署到运行与生产相同的发行版的机器上,然后将部署 tar 起来目录)
  • 考虑使用更符合其网络堆栈的堆栈,例如用于部署到 Tomcat 的JRuby 和warbler
  • 为初始安装做一些配对编程或至少屏幕共享。有时,爱与恨一个平台的区别在于出现问题时能否获得帮助。
于 2012-07-30T07:54:21.017 回答
0

一种选择可能是设置类似 Jenkins 的东西,它将使用 capistrano 进行部署。您的客户可以卷曲 jenkins 构建 url 以触发部署。

于 2013-08-31T22:14:48.227 回答
0

Mina与 Capistrano 类似,但不依赖于位于 rails 应用程序目录中。

于 2012-08-14T09:27:23.197 回答