【问题标题】:Why capistrano is executing the task locally为什么 capistrano 在本地执行任务
【发布时间】:2011-03-19 05:22:36
【问题描述】:

我正在使用 Capistrano 部署一个 ruby​​ on rails 项目。我正在尝试以用户“部署”身份登录远程服务器并部署此应用程序。

当我 ssh 进入框作为部署和 git 克隆项目时,它可以工作

ssh deploy@remote_box
git clone git@github.com:lumdum/demo.git 

但是,当我使用 Capistrano 运行时,它说权限被拒绝帐户 dorelaldorelal 是我在 GitHub 上的帐户。所以我认为 Capistrano 是在我的 Mac 上本地执行任务,而不是在 Redhat 上的远程服务器上。

Capistrano 确实是在本地运行该命令。当我执行

cap staging deploy -vvvv

这是我收到的错误消息

executing locally: "git ls-remote git@github.com:lumdum/demo.git master"

注意它说“在本地执行”。为什么 capistrano 在本地而不是在我的远程机器上运行它。

这是我的deploy.rb

set :stages, %w(staging)
require 'capistrano/ext/multistage'

set :repository,  "git@github.com:lumdum/demo.git"
set :scm, :git
set :user, 'deploy'
set :use_sudo, false
set :keep_releases, 2

role :web, "serv1"                 
role :app, "serv1" 
role :db,  "db1", :primary => true 

set :application, "demo_staging"
set :branch, "master"
set :deploy_via, :remote_cache
set :deploy_to, "/var/www/rails/demo"
set :scm_user, 'dorelal_lumdum'
set :user, 'deploy'

set :rails_env, "staging"
set :keep_releases, 1

【问题讨论】:

    标签: capistrano


    【解决方案1】:

    Capistrano 在本地运行以确定存储库上的 HEAD,然后在后续步骤中使用它来签出(或用 Git 术语克隆)从您的工作站看到的精确修订。

    我承认这有点出乎意料!

    【讨论】:

    • 谢谢。不知道为什么必须在本地结帐才能找到 HEAD,但我相信他们有充分的理由。如果有记录就好了:-)
    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多