我一直在为一个非技术客户开发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来触发部署。