标签: capistrano

更改存储库URL后,Capistrano部署失败

我通过Capitrano从Git存储库进行了简单的部署.起初我正在部署GitHub表单,一切正常.但后来我将我的存储库移动到BitBucket,现在我已经到了

fatal: Could not parse object '9cfb...'.
Run Code Online (Sandbox Code Playgroud)

一旦我改变,问题就消失了

set :deploy_via, :remote_cache
Run Code Online (Sandbox Code Playgroud)

set :deploy_via, :copy
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题,只能绕过它.有什么办法我可以告诉capistrano只丢弃旧缓存吗?

ruby deployment capistrano

74
推荐指数
4
解决办法
2万
查看次数

getaddrinfo:提供nodename或servname,或者不知道

我有一个Ruby on Rails应用程序,我正在运行Mac OS X 10.6的计算机上部署.出现问题的代码由delayed_job运行.只有当它通过delayed_job运行时才会出现此问题.如果我在控制台(rails console production)中运行它或直接通过cURL调用API,它可以正常工作.此外,整个过程在我的开发环境中没有问题.

基本上,代码在一个地方工作,但由于某种原因,在必须工作的地方失败.我搜索并找到了一些资源,但没有一个建议适用或有任何区别.当我登录服务器并运行命令时,一切正常.但由于某些原因,当它们由Capistrano运行/启动时,它不起作用.

任何帮助是极大的赞赏.

重要笔记:

码:

class CallApi < Struct.new(:num)
  def perform
    log "Entering perform"
    apinum = num || 5
    log "ApiNum = #{apinum}"
    results = attempt(2,10) do
      ActiveSupport::JSON.decode(RestClient.get(API_URL, {:params => {:apinum => apinum}}))
    end
    log "Results retrieved. (count: #{results.count})"
  end

  def log(message)
    Delayed::Worker.logger.info "[CallApi] #{Time.now} - #{message}"
  end
end
Run Code Online (Sandbox Code Playgroud)

环境配置(注意:网址是假的,但形式与真实网址相同):

API_URL = "http://api.example.org/api_endpoint"
# Originally, I had "http://" before the beginning, but found a …
Run Code Online (Sandbox Code Playgroud)

ruby capistrano ruby-on-rails delayed-job

68
推荐指数
7
解决办法
13万
查看次数

在Capistrano中部署Git子目录

我的主分支布局是这样的:

/ < - 顶级

/ client < - 桌面客户端源文件

/ server < - Rails app

我想做的只是拉下我的/ server目录deploy.rb,但我似乎找不到任何办法./ client目录很大,因此设置一个钩子来复制/服务器到/将无法正常工作,它只需要拉下Rails应用程序.

git deployment capistrano ruby-on-rails

65
推荐指数
3
解决办法
1万
查看次数

加速资产:使用Rails 3.1/3.2 Capistrano部署进行预编译

我的部署速度很慢,至少需要3分钟.部署期间缓慢的Capistrano任务是资产:预编译.这大约占总部署时间的99%.我怎样才能加快速度呢?我应该在我的本地计算机上预编译我的资产并将它们添加到我的git仓库吗?

编辑:添加config.assets.initialize_on_precompile = false到我的application.rb文件,半分钟后删除预编译时间,但它仍然很慢.

capistrano ruby-on-rails ruby-on-rails-3.1 asset-pipeline

61
推荐指数
2
解决办法
3万
查看次数

在Ruby中读取文件的第一行

我想以最快,最简单,最惯用的方式使用Ruby 读取文件的第一行.什么是最好的方法?

(具体来说:我想从我最新的Capistrano部署的Rails目录中的REVISION文件中读取git commit UUID,然后将其输出到我的标签.这将让我看到http浏览器部署到我的服务器的版本如果有完全不同的更好的方法,请告诉我.)

ruby git file-io capistrano ruby-on-rails

59
推荐指数
5
解决办法
4万
查看次数

拒绝访问Apache上的.svn文件夹

我们在subversion中有一个rails应用程序,我们使用Capistrano进行部署但注意到我们可以访问'/.svn'中的文件,这引起了安全问题.

我想知道最好的方法是什么.一些想法:

  • 全局Apache配置拒绝访问
  • 在公用文件夹和所有子文件夹中添加.htaccess文件
  • 更改权限的上限任务

我真的不喜欢删除文件夹或使用svn export的想法,因为我想保留'svn info'.

svn apache deployment capistrano

56
推荐指数
5
解决办法
3万
查看次数

如何使用Capistrano部署到单个特定服务器

我有一个生产系统,有几个角色的服务器.我想通过部署到该特定服务器来测试新的应用服务器,而无需重新部署到生产中的每个服务器.有没有办法让Capistrano部署到特定的服务器?理想情况下,我希望能够运行类似的东西

cap SERVER=app2.example.com ROLE=app production deploy
Run Code Online (Sandbox Code Playgroud)

如果我只是想部署到app2.example.com.

谢谢!

[更新]我通过执行以下方法尝试了wulong建议的解决方案:

cap HOSTS=app2.server.hostname ROLE=app qa deploy 
Run Code Online (Sandbox Code Playgroud)

但是除了app任务之外,capistrano似乎还在尝试为该服务器上的其他角色执行任务.也许我需要更新我的帽子版本(我正在运行v2.2.0)?

deployment capistrano release-management

56
推荐指数
1
解决办法
3万
查看次数

Rails 3 - Bundler/Capistrano错误

我有一个基本的Rails 3应用程序在我的开发盒上本地工作,但是想要尽早测试部署以确保一切正常.我正在使用Capistrano进行部署.

当我运行cap deploy(在所有其他必要的设置之后)时,它会在此命令中出现此错误:

[...]
* executing 'bundle:install'
* executing "bundle install --gemfile /var/www/trex/releases/20100917172521/Gemfile --path /var/www/trex/shared/bundle --deployment --quiet --without development test"

servers: ["www.[my domain].com"]
[www.[my domain].com] executing command
** [out :: www.[my domain].com] sh: bundle: command not found
command finished
[...]
Run Code Online (Sandbox Code Playgroud)

所以看起来它无法bundle在服务器上找到命令.

但是,当我登录到服务器时......

$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
$ rails -v
Rails 3.0.0
$ bundle -v
Bundler version 1.0.0
Run Code Online (Sandbox Code Playgroud)

... bundle命令工作正常.

怎么可能出错?

-

(此外,为了完整:)

$ which ruby
~/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
$ which rails …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails bundler ruby-on-rails-3

53
推荐指数
5
解决办法
3万
查看次数

Capistrano SSH :: AuthenticationFailed,不提示输入密码

我已经成功地使用了capistrano一段时间,并且在每个项目中我突然失去了部署能力.

环境:

  • os X(小牛队)
  • 红宝石1.9.3p194
  • rvm(本地,不在服务器上)
  • rails 3.2及以上
  • RubyGems 1.8.25

我没有使用rsa_keys或任何我想要capistrano来提示用户和密码.突然它决定不要求密码,但确实要求用户.然后它回滚并给我以下错误.

[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)
connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)
Run Code Online (Sandbox Code Playgroud)

这发生在我的个人笔记本电脑和我的iMac上.它部署到两个不同的服务器(两个Linux)时发生

我在这里完全不知所措.有任何想法吗?

ruby deployment capistrano ruby-on-rails

52
推荐指数
5
解决办法
3万
查看次数

如何配置Capistrano从本地Git存储库部署?

我需要对deploy.rb下面的文件进行哪些更改才能从本地git repo部署我的应用程序?如果我无法从本地仓库部署,我可以让capistrano使用工作复制吗?

set :application, "my_app"
set :repository, "."
set :local_repository, "file:///path/to/application/.git"
set :deploy_to, "/data/www/apps/#{application}"
set :deploy_via, :copy
set :copy_cache, true
set :user, "dane"
set :use_sudo, false

set :scm, :git # Should I change this to :none
set :branch, "master"
Run Code Online (Sandbox Code Playgroud)

git capistrano ruby-on-rails

51
推荐指数
5
解决办法
3万
查看次数