在没有rails环境的情况下,使用capistrano部署rails应用程序



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

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

如果capistrano无法实现这一点,任何人都知道任何其他部署实用程序,这将允许我独立完成cap的工作。。(我在我的:after_update块中创建符号链接并运行一些rake任务)。

谢谢,Hassan

如果设置一个ruby环境来运行cap deploy不是"网络人"愿意做的事情,那么你将面临一场相当艰难的战斗。一些有助于缓解这种情况的建议:

  • 让他们使用railsrady脚本来设置环境
  • 给他们一个可以用来部署实例的虚拟机(也许是Vagrant box?)
  • 如果你正在进行基于git的部署,你要么必须设置一个部署器密钥(并将其提供给他们),要么将其添加到你的github项目中(假设你使用的是github)
  • 考虑将整个项目捆绑在一起,以tarball的形式交付(或将其放入rpm中),并让它们以这种方式部署(一种快速而肮脏的方法是部署到与生产运行相同发行版的机器上,并标记部署目录)
  • 考虑使用与网络堆栈更加一致的堆栈,如JRuby和warbler,以便部署到Tomcat
  • 为初次安装做一些配对编程或至少屏幕共享。有时,爱和恨一个平台的区别在于当问题出现时是否能得到帮助

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

一个选项可以是设置类似Jenkins的东西,使用capistrano进行部署。您的客户端可以卷曲jenkins构建url来触发部署。

最新更新