gpt4 book ai didi

capistrano - 为什么 capistrano 在本地执行任务

转载 作者:行者123 更新时间:2023-12-02 01:21:46 26 4
gpt4 key购买 nike

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

当我通过 ssh 进入框进行部署并 git 克隆项目时,它可以工作

ssh deploy@remote_box
git clone <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ddbab4a99dbab4a9b5a8bff3beb2b0" rel="noreferrer noopener nofollow">[email protected]</a>:lumdum/demo.git

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

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

cap staging deploy -vvvv

这是我收到的错误消息

executing locally: "git ls-remote <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f3949a87b3949a879b8691dd909c9e" rel="noreferrer noopener nofollow">[email protected]</a>:lumdum/demo.git master

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

这是我的deploy.rb

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

set :repository, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="72151b0632151b061a07105c111d1f" rel="noreferrer noopener nofollow">[email protected]</a>: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 在本地运行该程序以确定存储库上的 HEAD,然后在后续步骤中使用该 HEAD 来 checkout (或用 Git 术语克隆)从工作站看到的精确修订版本。

我承认这有点出乎意料!

关于capistrano - 为什么 capistrano 在本地执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3303480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com