草庐IT

capistrano-env

全部标签

ruby-on-rails - bundle 安装不适用于 capistrano

我想通过capistrano3.0部署我的简单rails4.0应用程序。我使用bundler1.3.5所以我添加了capistrano-bundlergem将bundler与capistrano集成。我有非常简单的配置(几乎是默认配置):set:bundle_gemfile,->{release_path.join('Gemfile')}set:bundle_dir,->{shared_path.join('bundle')}set:bundle_flags,''set:bundle_without,%w{testdevelopment}.join('')set:bundle_bins

ruby - 如何配置 capistrano 以使用我的 Ruby rvm 版本

有谁知道我怎么知道capistrano使用我的默认rvm我要推送到的服务器上的ruby​​版本。坚持使用系统版本。有可能吗? 最佳答案 你有两个选择:使用ssh配置文件中的PermitUserEnvironment选项启用.ssh环境变量使用capistrano:default_environment设置对于第二个选项,只需在deploy.rb文件中添加以下行set:default_environment,{'PATH'=>"/path/to/.rvm/ree-1.8.7-2009.10/bin:/path/to/.rvm/gems

ruby-on-rails - 如何使用 Capistrano gem 为生产数据库播种?

我正在使用RubyonRails3.0.9,我想为生产数据库添加种子以添加一些记录而无需重新构建所有数据库(即是,不删除所有现有记录,而只是添加一些尚不存在的记录)。我想这样做,因为需要新数据才能使应用程序正常工作。因此,由于我使用的是Capistranogem,因此我在控制台中运行cap-T命令以列出所有可用命令并了解如何实现我的目标:$cap-T=>...=>capdeploy:seed#Reloadthedatabasewithseeddata.=>...我不确定“使用种子数据重新加载数据库”中出现的“重新加载”一词。句子。所以,我的问题是:如果我在本地计算机的控制台中运行cap

ruby-on-rails - 如何使用 capistrano deploy 定位特定的提交 SHA

我想知道如何使用Capistrano在Git中针对特定的提交SHA进行部署?应该是这样的capdeploy--version=经过大量搜索似乎无法找到这个问题的答案。 最佳答案 对于Capistrano2.9到3.0:cap-Srevision=80655da8d80aaaf92ce5357e7828dc09adb00993deploy对于旧版本的Capistrano,您可以通过执行以下操作来部署特定的gitcommit/tree/branch/tag:cap-sbranch=80655da8d80aaaf92ce5357e7828

ruby - 您如何检查 Capistrano 中是否存在文件(在远程服务器上)?

像我在Googleverse中看到的许多其他人一样,我成为了File.exists?陷阱的受害者,它当然会检查您的本地文件系统,而不是您要部署到的服务器。我发现了一个使用shellhack的结果,例如:if[[-d#{shared_path}/images]];then...但这对我来说不太合适,除非它被很好地包装在Ruby方法中。有没有人优雅地解决了这个问题? 最佳答案 在Capistrano3中,您可以:onroles(:all)doiftest("[-f/path/to/my/file]")#thefileexistselse

ruby-on-rails - 我如何在 rake 任务中强制使用 RAILS_ENV?

我有这个小佣金任务:namespace:dbdonamespace:testdotask:resetdoENV['RAILS_ENV']="test"Rake::Task['db:drop'].invokeRake::Task['db:create'].invokeRake::Task['db:migrate'].invokeendendend现在,当我执行时,它将忽略我尝试硬编码的RAILS_ENV。我如何使这个任务按预期工作 最佳答案 对于这个特定的任务,您只需要更改数据库连接,正如Adam指出的那样,您可以这样做:namesp

ruby-on-rails - Capistrano & Bash : ignore command exit status

我正在使用Capistrano运行远程任务。我的任务是这样的:task:my_taskdorun"my_command"end我的问题是,如果my_command的退出状态为!=0,那么Capistrano认为它失败并退出。当退出状态不为0时,如何让capistrano在退出时继续运行?我已将my_command更改为my_command;echo并且它可以工作,但感觉像是hack。 最佳答案 最简单的方法是将true附加到命令的末尾。task:my_taskdorun"my_command"end成为task:my_taskdor

ruby-on-rails - Capistrano 在部署时要求输入密码,尽管有 SSH key

我的sshkey绝对设置正确,因为在使用ssh时我从未被提示输入密码。但是capistrano在使用capdeploy部署时仍然要求输入密码。但是,奇怪的是,当我使用capdeploy:setup进行设置时,它并不要求输入密码。如果没有密码提示,这将使部署周期更加顺畅。细节:我正在将Sinatra应用程序部署到Dreamhost共享帐户(使用Passenger)。很久以前我就按照教程做了,当时效果很好。从那以后有些东西坏了。我正在使用capistrano(2.5.9)和git版本1.6.1.1。这是我的Capfile:load'deploy'ifrespond_to?(:namespa

Ruby:如果存在 ENV 变量,则使用最简洁的方法,否则使用默认值

在Ruby中,我正在尝试编写一行,如果已设置变量,则使用该变量,否则默认为某个值:myvar=#assignittoENV['MY_VAR'],otherwiseassignitto'foobar'我可以这样写这段代码:ifENV['MY_VAR'].is_set?#whateverthefunctionistocheckifhasbeensetmyvar=ENV['MY_VAR']elsemyvar='foobar'end但这有点冗长,我尽量用最简洁的方式来写。我该怎么做? 最佳答案 myvar=ENV['MY_VAR']||'f

ruby-on-rails - Capistrano SSH::AuthenticationFailed,不提示输入密码

我已经成功使用Capistrano一段时间了,突然之间我失去了部署能力的每个项目。环境:osX(小牛队)ruby1.9.3p194rvm(在本地,不在服务器上)rails3.2及以上RubyGems1.8.25我没有使用rsa_keys或任何我希望capistrano提示输入用户名和密码的东西。突然它决定不要求输入密码,但确实要求输入用户。然后它回滚并给我以下错误。[deploy:update_code]exceptionwhilerollingback:Capistrano::ConnectionError,connectionfailedfor:sub.example.com(Ne