草庐IT

capistrano-env

全部标签

ruby-on-rails - Rails : difference between ENV. fetch() 和 ENV[]

这两种语法有什么区别:ENV.fetch("MY_VAR")ENV['MY_VAR']我已经看到Rails5在不同的地方使用了这两个版本,但无法弄清楚有什么区别(除了第一个需要输入的字符更多)。 最佳答案 ENV类散列对象是普通的Ruby,不是Rails的一部分。来自fineENV#[]manual:RetrievesthevalueforenvironmentvariablenameasaString.Returnsnilifthenamedvariabledoesnotexist.和fineENV#fetchmanual:Ret

ruby - 部署后 Capistrano 3 不重启

我最近更新了我的capistranogem到版本3.1.0,从那时起capproductiondeploy顺利通过,但目标deploy:restart没有被调用。我的服务器部署在AmazonEC2上的Ubuntu12.10上。为什么会这样? 最佳答案 Capistrano3默认不再运行该任务,因为许多应用服务器不需要它。将此添加到您的config/deploy.rb:after'deploy:publishing','deploy:restart'来自releasenotes:Breakingchanges:deploy:resta

ruby - 创建一个根据角色执行不同任务的 Capistrano 任务

我正在寻找一种方法来调用单个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所以是的,您确

ruby - Capistrano 错误 - Net::SSH::HostKeyMismatch

我是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

ruby-on-rails - 迁移正在等待;运行 'bin/rake db:migrate RAILS_ENV=development' 来解决这个问题[无法继续]

我似乎有一个关于RubyonRails迁移过程的循环问题。我正在关注介绍文章,我已经到了需要创建我的第一个表的地步。我已经运行了以下,[tims@web2working_ror]#railsgeneratemodelHomepagefirst_name:stringlast_name:stringemail:stringmessage:textinvokeactive_recordcreatedb/migrate/20131119203948_create_homepages.rbcreateapp/models/homepage.rbinvoketest_unitcreatetest

ruby-on-rails - 在 env.rb 之外需要 Cucumber-rails。其余的加载被推迟到 env.rb 被调用

请问这个env.rb错误是什么意思?root#rakedb:migrateWARNING:Cucumber-railsrequiredoutsideofenv.rb.Therestofloadingisbeingdefereduntilenv.rbiscalled.Toavoidthiswarning,move'gemcucumber-rails'underonlygroup:testinyourGemfilegemfile在这里:source'http://rubygems.org'gem'rails','3.1.0'#BundleedgeRailsinstead:#gem'rail

ruby - 如何从 Capistrano 中的远程命令捕获输出?

我想运行一个远程命令(几个文件夹中的current_revision和HEAD的gitdiff)并捕获输出。我试过运行(“gitdiffrev1rev2--folder|cat”),但该方法似乎总是返回nil(即使我可以在Capistrano输出中看到diff输出)。有什么想法吗?我可以使用不同的管道命令方式或类似方式吗?我不是Unix向导,所以我在这里可能缺少一些微不足道的东西。 最佳答案 也许捕获?“捕获助手将在第一个匹配的服务器上执行给定的命令,并将命令的输出作为字符串返回。”https://github.com/capist

ruby-on-rails - 使用 Capistrano 3 设置默认阶段

有没有办法在Capistrano3中设置默认阶段?我试过将set:stage,:production放在deploy.rb中,但这没有用,它给出了错误:Stagenotset,pleasecallsomethingsuchas`capproductiondeploy`,whereproductionisastageyouhavedefined我现在只有一个阶段,所以我希望能够只运行capdeploy并让它在默认情况下执行。 最佳答案 Capistranov3在某种程度上是Rake的包装器,因此您需要意识到真正发生的是producti

ruby-on-rails -/usr/bin/env ruby​​ 没有这样的文件或目录 : Using capistrano 3, capistrano/rbenv、capistrano/bundler 和 capistrano/rails(使用 rails 4)

我正在使用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

ruby-on-rails - Capistrano 3 在目录中执行

我正在尝试为Capistrano3编写一个任务,该任务涉及在当前版本的目录中执行“composerinstall”。它看起来像这样:namespace:composerdodesc'InstalldependencieswithComposer'task:installdoonroles(:web)dowithinrelease_pathdoexecute"#{fetch(:composer_command)}install"endendendendcomposer_command在暂存和生产文件中设置-在我的特定情况下为php/home/user/composer.phar由于某些原