首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在:deploy_to中从服务器配置中设置Capistrano3

在:deploy_to中从服务器配置中设置Capistrano3
EN

Stack Overflow用户
提问于 2015-03-30 18:00:03
回答 1查看 474关注 0票数 3

在我的Capistrano 3部署中,我希望设置set :deploy_to, -> { "/srv/www/#{fetch(:application)}" },以便为部署到的每个服务器设置不同的:deploy_to

在我的staging.rb文件中有:

代码语言:javascript
复制
server 'dev.myserver.com', user: 'deploy', roles: %w{web app db}, install_path: 'mycustom/path'
server 'dev.myserver2.com', user: 'deploy', roles: %w{web app db}, install_path: 'mycustom/other/path'

我的问题是:是否可以在我的install_path中使用我定义的“:deploy_to”?如果有可能,你会怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-06 19:49:52

最后,在环顾四周之后,我遇到了一个来自Capistrano的开发人员的问题,具体地说,it 不能做

来自Github问题的报价

不可能抱歉。fetch() (如广泛记录的那样)读取set()设置的值,在常规的ruby变量上使用set()和fetch()的唯一原因是在插件和扩展之间提供一致的API,并且因为set()可以在以后解析一个Proc。 通过server()命令在主机对象中设置的变量属于单个主机,其中一些变量、用户、角色等具有特殊意义。有关更多信息,请参见https://github.com/capistrano/sshkit/blob/master/EXAMPLES.md#do-something-different-on-one-host-or-another-depending-on-a-host-property。 如果您特别需要部署到每台机器上的不同目录,您可能不应该使用内置任务(它们不符合您的需要),而是将deploy.rake从Gem复制到您自己的项目中,并根据需要对其进行修改。在这种情况下,可能不是提取(:deploy_to),而是从主机属性读取它。 您可以尝试在执行任何依赖于调用fetch(:deploy_to)的操作之前,使用来自host.someproperty的值来设置(),但我非常肯定这会以令人兴奋和有趣的方式中断。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29353019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档