【问题标题】:Capistrano deploy:update fails, but setup and check workCapistrano 部署:更新失败,但设置和检查工作
【发布时间】:2012-03-30 19:52:10
【问题描述】:

我是新手,如果这是一个愚蠢的问题,我深表歉意,但谁能帮我破译这个部署错误?我终于设法让 'cap deploy:setup' 和 'cap deploy:check' 正常运行。现在,我被困在“上限部署:更新”。从错误输出来看,我的部署文件似乎有问题,但我不知道问题可能是什么。 shell 输出和部署文件如下。任何帮助将不胜感激!

一些背景:我正在部署到正在运行乘客的朋友的服务器。我们正在使用 ruby​​ 1.9.2-p290、rails 3.1.3、capistrano 2.11.2 和 MacOS 10.6。

这是部署错误输出的示例:

my-MacBook-Pro:projectfolder myuser$ cap deploy:update
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote ssh://git@server.example.ca/usr/local/git_root/arbiterapi.git master"
*** [deploy:update_code] rolling back
  * executing "rm -rf /usr/local/www/sites/project.example.ca/releases/20120330191423; true"
    servers: ["project.example.ca"]
    [project.example.ca] executing command
    [project.example.ca] rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.2-p290@project' -c 'rm -rf /usr/local/www/sites/project.example.ca/releases/20120330191423; true'
    command finished in 663ms
/Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:107:in ``': No such file or directory - git ls-remote ssh://git@server.example.ca/usr/local/git_root/project.git master (Errno::ENOENT)
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:107:in `block in run_locally'
    from /Users/myuser/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310:in `realtime'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:106:in `run_locally'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:44:in `block (3 levels) in load'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:96:in `with_env'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy.rb:44:in `block (2 levels) in load'
    from /Users/myuser/.rvm/gems/ruby-1.9.2-p290@project/gems/capistrano-2.11.2/lib/capistrano/recipes/deploy/scm/git.rb:227:in `query_revision'
... etc.

错误输出的其余部分也指向 capistrano 文件夹。输出似乎太长,无法完整包含在内。但如果有帮助,我可以提供其余的!

这是部署文件:

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load path.
require "rvm/capistrano"                  # Load RVM's capistrano plugin.

set :application, "Project"

set :scm, "git"
set :repository,  "ssh://git@server.example.ca/usr/local/git_root/project.git"
set :user, "deploy"

#set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_ruby_string, "ruby-1.9.2-p290@project"
set :normalize_asset_timestamps, false

ssh_options[:forward_agent] = false

set :branch, "master"

set :deploy_via, :remote_cache

set :deploy_to, "/usr/local/www/sites/project.example.ca/"

set :use_sudo, false

set :domain, 'project.example.ca'

role :app, domain
role :web, domain
role :db,  domain, :primary => true

【问题讨论】:

    标签: ruby-on-rails deployment capistrano


    【解决方案1】:

    错误是行

    No such file or directory - git ls-remote ssh://git@server.example.ca/usr/local/git_root/project.git master (Errno::ENOENT)
    

    所以它在检出存储库时失败。为什么你有 ssh 前缀?指定用户 (git@) 时,您也不应该有协议 - 存储库应该设置为

    git@server.example.ca/usr/local/git_root/project.git
    

    或者项目的 git 存储库的任何实际 URL。

    仅供参考 - deploy:setupdeploy:check 都没有真正检查代码,这就是这两个工作的原因。

    【讨论】:

    • 感谢您的回复。我删除了 ssh 前缀,但我得到相同的“没有这样的文件或目录”错误:没有这样的文件或目录 - git ls-remote git@appsrv-04.nullpointer.ca/usr/local/git_root/arbiterapi.git master ( Errno::ENOENT)
    • git@appsrv-04.nullpointer.ca/usr/local/git_root/arbiterapi.git 是您存储库的正确 URL 吗?如果是这样,那么您的服务器可能无权访问存储库。假设您可以从自己的本地机器推/拉,请尝试将 ssh_options[:forward_agent] 设置为 true
    • 另外,git ls-remote 可能是一个红鲱鱼,实际问题是目录 /usr/local/www/sites/project.example.ca/ 不存在。 (虽然我觉得不太可能)
    • 啊哈。发现了问题。我最近安装和卸载了 macports。不知何故,我的 PATH 变量搞砸了,git 无法使用。现在 git 再次工作,我有一组完全不同的错误,我将单独发布(但链接到这里)。不过感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多