php - 通过 : remote_cache 使用 Capistrano + Gitlab 进行部署

标签 php ruby-on-rails git gem capistrano

我正在使用 Capistrano 部署 PHP Web 应用程序,我们有一个内部 gitlab 服务器,该服务器无法从网络外部访问。我正在尝试使用 remote_cache 进行部署,因为如果将其用于复制会花费很多时间。我已经查过了 ThisThis但没有得到想要的结果。我正在尝试以下代码。

set :default_stage, "staging"
ssh_options[:forward_agent] = true
server "servername", :app, :web, :db, :primary => true
set :application, "appname"
set :scm, :git
set :repository, '.'
set :local_repository, "file://."
set :branch, "master"
default_run_options[:pty] = true
set :keep_releases, 2
set :user, 'username'
set :deploy_to, "/home/domain/public_html/test"    
set :copy_cache, true
set :deploy_via, :remote_cache
set :copy_strategy, :export
set :use_sudo, false
set :copy_exclude, [".git", ".DS_Store", ".gitignore", ".gitmodules", "Capfile", "config/deploy.rb"]

存储库和本地存储库使用什么路径。有什么建议我怎样才能做到这一点? 编辑:我可以将本地存储库用于远程缓存吗?

最佳答案

您的意思是将本地存储库用于 remote_cache?

:repository 是部署到的服务器将使用的 url。因此,如果您的 Git 服务器在您要部署到的同一台服务器上运行,您可以将其设置为 file:///path_to_repo

:local_repository 是您将用于从运行 capistrano 脚本的本地计算机连接到 repo 的 url。如果 :repository 是本地路径并且您从另一台机器运行 capistrano,则只需要设置它。

例子:

set :repository, "file:///home/git/my_repo"
set :local_repository, "http://server_address/my_repo"

但是,例如,如果你的 repo 在 Github 上,那么你应该只设置 :repository(不要设置 :local_repository)

set :repository, "git@github.com/your_account/your_repo.git"

Capistrano 在使用 remote_cache 部署(共享/缓存副本)时自动创建一个目录来保存它的 repo 克隆。

运行脚本时是否出现错误?

关于php - 通过 : remote_cache 使用 Capistrano + Gitlab 进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338556/

相关文章:

PHP:调用 file.php 中非对象的成员函数 fetch_assoc()

php - 如何处理表单中多个提交按钮的不同目标?

php - 有人可以指出为什么我的 require_once() 函数找不到路径吗? PHP

ruby-on-rails - 如何跨模型共享代码? ( rails 2.3)

git - 我如何拆分埋藏在历史中的 Git 提交?

git - 为什么我必须将现有的 Git 存储库设置为 "clone"才能访问它?

php - LEFT JOIN 选择条件

jquery - Rails Jquery 自动完成 JSON 失败

javascript - jQuery-ui 自动完成,选择第一项

git - 反转 Github 上的最后一次推送。