草庐IT

capistrano3

全部标签

ruby-on-rails - 如何在 Capistrano 部署的生产环境中对我的产品图像进行符号链接(symbolic link)?

Here我收到了我的问题的解决方案,每次当我使用Capistrano部署我的SpreeCommerce应用程序时,我的图像都会被删除(它们仍然存在,但文件夹名称错误)并且我必须通过管理员再次添加它们。都在thisGooglegroup在answer对于这个问题,据说符号链接(symboliclink)是解决方案。YouneedtomakesurethatyourRAILS_ROOT/public/spreedirectoryisbeingsymlinkedinfromtheCapistranoshareddirectoryandnotrecreatedeverytimeyoudeplo

ruby-on-rails - 我可以在没有 SCM 的情况下使用 Capistrano 进行部署吗?

Capistrano配置文件有配置设置:scm,:git和:repo_url和:branch我可以在没有scm的情况下使用capistrano进行部署吗?set:scm,:noneset:repository,"."在Capistrano部署中配置scm有什么好处? 最佳答案 使用Capistrano2你可以做到这一点。使用Capistrano3,你不能。您可以做的一个技巧是在托管应用程序的同一台服务器上托管一个Git存储库,因为“托管”一个存储库意味着简单havingtherepofilesinadirectorysomewher

ruby - Capistrano 3 "upload"任务引发错误

我有Capistrano3任务namespace:dbdodesc"serurelymanagesdbconnfileafterdeploy"task:dbconfigdoonroles(:web)do|host|upload("config/deploy/dbconn.template.php","#{shared_path}/dbconn.php")endendend运行时capstagingdb:dbconfig我收到错误capaborted!undefinedmethod`upload'for#根据capistranoAPI我可以使用这个方法来上传文件,我也在sshkitlib

ruby - Capistrano:使用标准 Gem-Home 中的 Bundle Gems

当使用Capistrano进行部署时,我想使用已安装的gem,而不是将它们安装到vendor中。Capistrano似乎忽略了.gemrc和.bashrc,所以我在deploy.rb中尝试了这个:require'bundler/capistrano'set:default_environment,{'GEM_HOME'=>'/some_path/.gem','GEM_PATH'=>'/some_path/.gem','BUNDLE_PATH'=>'/some_path/.gem'}我的gems位于/some_path/.gem/gems,bin:/some_path/.gem/bin。

ruby-on-rails - 使用命名空间部署时出现 Capistrano 错误

我的capdeploy:migrate突然停止工作,出现错误:***[err::1.2.3.4:2222]bash:-c:line1:syntaxerror:unexpectedendoffilecommandfinishedin559msfailed:"/usr/local/bin/rvm-shell'ruby-1.9.2-p0@gemset'-c'cd/home/user/app/releases/20111122182205&&#RAILS_ENV=stagingdb:migrate'"on1.2.3.4:2222显然这个错误与这不是一个有效的命令有关...#但我不知道最近发生了

ruby-on-rails - Ruby on Rails whenever + capistrano v3 集成

在我的项目中,我使用whenever+capistrano,所以这是我的Capfile:require'capistrano/setup'require'capistrano/deploy'require'capistrano/rvm'require'capistrano/bundler'require'capistrano/rails/assets'require'capistrano/rails/migrations'require'whenever/capistrano'Dir.glob('lib/capistrano/tasks/*.cap').each{|r|importr}

ruby - 使用 capistrano 仅部署到一个角色/服务器

我正在尝试设置多个角色,一个用于现场,另一个用于开发。它们看起来像这样:role:live,"example.com"role:dev,"dev.example.com"但是,当我运行capdeploy时,它会在两台服务器上执行。我尝试了以下方法,它总是在两者上执行。capdeploylivecapROLE=livedeploy我错过了什么?我知道我可以编写一个只响应一个角色的自定义任务,但我不想编写一大堆任务只是为了告诉它响应一个或另一个角色。谢谢! 最佳答案 CapistranoMultistage绝对是您发布的用于部署到环境的

ruby-on-rails - 如果 Unicorn 启动新进程失败,Capistrano 能通知我吗

我的Unicorn故事:我部署,部署失败(堆栈或其他),响应是部署完成,除非我查看日志,否则我不知道所提供的代码是正确的代码。即使查看Unicorn切换进程时我必须查看的日志。我启动了一个unicorn,它启动了pid=Apid=Afork到B,C,D,EA是主人当我用USR2给A发信号时它再次fork自己(F)通常F次执行F现在是master(但不控制套接字)FforkG、H、I、J(如果可以的话),然后通知A退出A捕获QUIT,清理自身,并将套接字移交给FF运行新代码直到我们重新部署但是...如果部署的代码堆栈-应用程序无法启动F重新执行,F失败,然后回到A部署失败,新代码在旧进程

ruby - 在 capistrano 的阶段文件上设置应用程序名称

我正在尝试使用多阶段/扩展来部署我的应用程序。当每个阶段位于不同的服务器时,它工作正常。但是对于一个特定的项目,我想将两个阶段部署到同一台服务器。为此,我需要在每台服务器上设置不同的应用程序名称。这就是行不通的原因。我将application变量移动到阶段文件,并定义了延迟加载的deploy_to变量。配置/部署.rbset:stages,%w(productionbeta)set:default_stage,"beta"require'capistrano/ext/multistage'#set:application,"myapp-beta"set:user,"deploy"set

ruby - Capistrano:require_relative 没有按预期工作

假设以下Rails设置:轨道3.2.9Capistrano2.13.5使用多级扩展(即capistrano/ext/multistage)定义的生产阶段,例如在Rails.root/config/deploy/production.rb中。在production.rb中,你不能使用require_relative,看起来——你最终会收到“无法推断基本路径”错误。但是,如果您只是普通的rubyproduction.rb,则require_relative可以正常工作。为什么会这样?似乎Capistrano加载/执行代码的方式使得require_relative无法按预期工作。我怀疑这类似