我正在使用 Capistrano 部署 PHP Web 应用程序,我们有一个内部 gitlab 服务器,该服务器无法从网络外部访问。我正在尝试使用 remote_cache 进行部署,因为如果将其用于复制会花费很多时间。我已经查过了 This和 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 脚本的本地计算机连接到 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/