我有一个专门用于delayed_job任务的服务器。我想在仅此服务器上启动、停止和重新启动delayed_jobworker。我正在使用delayed_job提供的Capistrano食谱。当我只有1个服务器时,这是我的配置:before"deploy:restart","delayed_job:stop"after"deploy:restart","delayed_job:start"after"deploy:stop","delayed_job:stop"after"deploy:start","delayed_job:start"现在我想让这些Hook仅应用于单独的delayed
有没有办法在不将命令添加到Capfile的情况下在capistrano中运行命令?例子:cap--eval"run'du-sh'"--roleweb 最佳答案 您可以使用它在服务器上运行命令。capROLES=webinvokeCOMMAND='du-sh'如果您甚至没有上限配方,您可以在命令行上指定服务器:cap-suser=myusernameHOSTS=server1.com,server2.cominvokeCOMMAND='du-sh'要查看更多命令行选项,请运行cap-H和cap-einvoke。
在Capistrano2中,你可以这样做:set:default_environment,{'PATH'=>'$PATH:/opt/rubies/ruby-2.1.1/bin'}cap3中是否有等效项? 最佳答案 使用:set:default_env,{'PATH'=>'PATH=$PATH:/opt/rubies/ruby-2.1.1/bin'}至少从capistrano3.1开始 关于ruby-on-rails-如何在Capistrano3中设置环境变量?,我们在StackOverf
我希望capistrano使用--trace调用rake,这样我就可以弄清楚它失败的原因。我该怎么做呢?set:rake'rake--trace'不起作用。 最佳答案 我找到的最好的方法是:set:rake,"#{rake}--trace"这样您就不会覆盖rake变量。例如,如果您使用bundler,这之前设置为:“bundleexecrake”之后:“bundleexecrake--trace” 关于ruby-如何在capistrano中使用--trace运行rake?,我们在Stac
我是第一次部署到DigitalOceanUbuntudroplet。我已经配置了所有内容并执行了所有步骤,现在我正在执行命令:capproductiondeploy:initial。对于此命令,我收到此错误消息:capaborted!Don'tknowhowtobuildtask'deploy:new_release_path'(see--tasks)/Users/Christopher/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:58:in`[]'/Users/
当我尝试使用capistrano部署我的应用程序时,我会收到此错误:failed:"sh-c'cp/var/www/my_app/releases/20120313115055/config/database.staging.yml/var/www/my_app/releases/20120313115055/config/database.yml'"onIP_ADDR我的database.yml即空的,database.staging.yml:production:adapter:mysql2encoding:utf8reconnect:falsedatabase:my_dbpool
这个问题已在stackoverflow和其他论坛上被问过几次,但我似乎无法通过我遇到的这个错误。当我运行capistranoproductiondeploy时,我在部署过程中收到此错误。capproductionbundler:install00:00bundler:install01bundleinstall--path/var/local/blackduck_flock_rails/shared/bundle--withoutdevelopmenttest--deployme…01Anerroroccurredwhileinstallingjson(1.8.6),andBundle
我更新到第3章,似乎不再支持set:deploy_via,:copy。在releaseannoucement有一个视频链接用于复制当前返回404的复制策略。我使用了:copy策略,因为服务器无法访问git或访问存储库,因为它在防火墙后面。用v3复制此功能的最佳方法是什么? 最佳答案 我遇到了同样的问题,并在capistranogooglegroup上发布了类似的问题。参见此处:https://groups.google.com/forum/#!topic/capistrano/BRa4Vj1_mEo简短回答:编写您自己的rake任务
我正在尝试将我的Rails(3.1.3)应用程序部署到预生产环境。我使用capistrano(2.12.0)和rvm-capistrano(1.2.2)。当我调用bundleexeccapssh时,它工作正常。但是当我调用bundleexeccapdeploy时,我得到以下跟踪:$capdeploytriggeringstartcallbacksfor`deploy'*18:42:19==Currentlyexecuting`multistage:ensure'***Defaultingto`preprod'*18:42:19==Currentlyexecuting`preprod'*
因此,我正在使用rails(ruby1.9.3p392、rails3.2、sqlite3db)并尝试将无处不在的博客教程代码部署到“生产”服务器(apache、passenger、ubuntu)。我的deploy.rb看起来像这样:require'bundler/capistrano'require'rvm/capistrano'load'deploy/assets'set:rvm_ruby_string,ENV['GEM_HOME'].gsub(/.*\//,"")set:rvm_type,:userset:user,'blah'set:application,'railsTest'