如何根据角色在capistrano 3中设置不同的deploy_to值?

时间:2016-01-05 13:29:32

标签: capistrano capistrano3

我想使用角色部署具有相同deploy.rb的多个应用程序。不同的应用程序应具有不同的选项,例如, deploy_to和scm。就像我在给Capistrano google小组的电子邮件中描述的那样:

https://groups.google.com/d/msg/capistrano/LQpWkHr9h18/FQS8jl8-DQAJ

  

我是卡皮斯特拉诺的新手,正在努力解决问题。

     

我有一个代码库,到目前为止一直是Ruby on Rails应用程序   (使用Ruby 2.1.2),使用Capistrano进行部署。

     

现在我也想将代码库作为基于Ruby脚本的服务运行   (没有Rails,也没有侦听HTTP请求)。这个版本的   服务将使用JRuby运行。

     

两个应用程序都使用相同的Gemfile,共同使用大量代码   两个应用程序之间。

     

我试图弄清楚如何扩展Capfile来支持   其他部署配置。

     

我正在关注的方向是使用新角色进行部署   Capfile。这个新角色会有很多不同之处   现有的,例如它如何重新启动服务所在的服务   安装。

     

我的问题是:这种方法有意义吗?谁能指出   找出一个更复杂的Capfile,它显示了我所拥有的一部分内容   描述

     

与此同时,我正在考虑在新角色中添加新角色   命名空间。

     

谢谢大卫

     

版本:Ruby ruby​​ 2.1.2 + jruby 9.0.4.0 Capistrano   3.4.0

2 个答案:

答案 0 :(得分:1)

角色的目的是定义在大多数常见的情况下要运行的任务。例如,您可能希望在一台服务器上运行数据库迁移,在另一台服务器上重新启动应用程序,并在另一台服务器上执行一些后台进程。但是所有这些角色都会将相同的代码复制到服务器上的相同位置。

如果要部署多个不同的应用程序,则应该使用多个Capistrano配置。

答案 1 :(得分:0)

不幸的是,我得出的结论是,这是不可能的。

deploy_to等配置设置是全局的,不能为每个角色覆盖。