使用Capistrano + GitLab使用via:remote_cache部署[英] Deployment using Capistrano + Gitlab using via: remote_cache

本文是小编为大家收集整理的关于使用Capistrano + GitLab使用via:remote_cache部署的处理方法,想解了使用Capistrano + GitLab使用via:remote_cache部署的问题怎么解决?使用Capistrano + GitLab使用via:remote_cache部署问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在使用Capistrano进行PHP Web应用程序的部署,并且我们有一个内部GitLab服务器,该服务器在网络之外无法访问.我正在尝试使用远程_Cache部署,因为如果使用它来复制,则需要花费大量时间.我已经检查了 this ,但没有得到所需的结果.我正在尝试以下代码.

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脚本的本地计算机连接到存储库的URL.您只需要设置此问题:存储库是本地路径,并且您正在从另一台计算机运行Capistrano.

示例:

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

但是,例如,如果您的回购在github上,那么您应该仅设置:repository(请勿设置:local_repository)

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

Capistrano自动创建一个目录,用于在使用remote_cache部署(共享/cached-copy)时保持其仓库的克隆.

运行脚本时会遇到错误吗?

本文地址:https://www.itbaoku.cn/post/786758.html