有人知道所有内置Capistrano变量的列表,例如current_path等吗? 最佳答案 您可以在以下位置找到所有这些:https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/recipes/deploy.rb更新:v3不再具有与v2相同的配置选项。我在上面链接了v2配置选项,但v3具有以下内容:这是遗留的,保留在这篇文章中:#===========================================================
我最近更新了我的capistranogem到版本3.1.0,从那时起capproductiondeploy顺利通过,但目标deploy:restart没有被调用。我的服务器部署在AmazonEC2上的Ubuntu12.10上。为什么会这样? 最佳答案 Capistrano3默认不再运行该任务,因为许多应用服务器不需要它。将此添加到您的config/deploy.rb:after'deploy:publishing','deploy:restart'来自releasenotes:Breakingchanges:deploy:resta
我正在寻找一种方法来调用单个Capistrano任务来为不同的角色执行不同的事情。Capistrano是否能够做到这一点,或者我是否为每个角色编写了特定任务? 最佳答案 在Capistrano中执行此操作的标准方法:task:whatever,:roles=>[:x,:y,:z]dox_tasksy_tasksz_tasksendtask:x_tasks,:roles=>:xdo#...endtask:y_tasks,:roles=>:ydo#...endtask:z_tasks,:roles=>:zdo#...end所以是的,您确
我是Capistrano和Ruby的新手,我似乎无法设置基本的部署。每次运行capdeploy:check我都会收到以下错误:servers:["domain.com"]connectionfailedfor:me@domain.com(Net::SSH::HostKeyMismatch:fingerprint0c:de:d4:1b:e9:64:83:3a:8b:d7:c3:42:98:5b:5d:8cdoesnotmatchfor"[domain.com]:22,[62.39.11.2]:22")我的deploy.db看起来像这样:set:stages,%w(productionst
正如标题所暗示的,当我尝试在我的邮件程序模板中使用link_to时出现此错误:ActionView::Template::Error:Missinghosttolinkto!Pleaseprovidethe:hostparameter,setdefault_url_options[:host],orset:only_pathtotrue我尝试按照它的说明进行操作,并且还找到了thispost,但我仍然收到错误。我尝试将config.action_mailer.default_url_options={host:'example.com'}添加到以下每个文件,但没有一个有效:/confi
我想运行一个远程命令(几个文件夹中的current_revision和HEAD的gitdiff)并捕获输出。我试过运行(“gitdiffrev1rev2--folder|cat”),但该方法似乎总是返回nil(即使我可以在Capistrano输出中看到diff输出)。有什么想法吗?我可以使用不同的管道命令方式或类似方式吗?我不是Unix向导,所以我在这里可能缺少一些微不足道的东西。 最佳答案 也许捕获?“捕获助手将在第一个匹配的服务器上执行给定的命令,并将命令的输出作为字符串返回。”https://github.com/capist
我目前正在学习Rails指南。我完成了这些步骤,但仍然遇到错误。我的Ruby版本是ruby2.1.1p76,Rails版本是4.0.4。按照指南的指示,我创建了一个ArticleController。classArticlesController我应该得到{"title"=>"Firstarticle!","text"=>"Thisismyfirstarticle."但输出结果是TemplateismissingMissingtemplatearticles/create,application/createwith{:locale=>[:en],:formats=>[:html],:
有没有办法在Capistrano3中设置默认阶段?我试过将set:stage,:production放在deploy.rb中,但这没有用,它给出了错误:Stagenotset,pleasecallsomethingsuchas`capproductiondeploy`,whereproductionisastageyouhavedefined我现在只有一个阶段,所以我希望能够只运行capdeploy并让它在默认情况下执行。 最佳答案 Capistranov3在某种程度上是Rake的包装器,因此您需要意识到真正发生的是producti
我正在使用capistrano、capistrano/rbenv、capistrano/bundler和capistrano/rails。我在capistrano编译Assets的步骤中得到这个错误:DEBUG[49a50df6]/usr/bin/env:DEBUG[49a50df6]rubyDEBUG[49a50df6]:NosuchfileordirectoryDEBUG[49a50df6]在生产服务器中/usr/bin/envruby-v是正确的。我知道这一点:why-does-something-work-in-my-ssh-session-but-not-in-capis
我正在尝试为Capistrano3编写一个任务,该任务涉及在当前版本的目录中执行“composerinstall”。它看起来像这样:namespace:composerdodesc'InstalldependencieswithComposer'task:installdoonroles(:web)dowithinrelease_pathdoexecute"#{fetch(:composer_command)}install"endendendendcomposer_command在暂存和生产文件中设置-在我的特定情况下为php/home/user/composer.phar由于某些原