我想安裝Capistrano部署我的項目與倍數git用戶。在我工作的地方,沒有(也不想擁有)一個通用的git用戶,比如'git'。所以部署配置與運行'cap deploy'的用戶相關。Capistrano - 部署與git共享存儲庫
,你可以在SE文件config.rb:
set :application, "mywebsite"
set :repository, "ssh://#{scm_user}@myserver.com/repo.git"
set :scm, :git
set :scm_verbose, true
set :deploy_via, :remote_cache
set :git_enable_submodules, 1
development.rb
set :deploy_to, "/var/www/html"
set :user, "myuser"
set :password, "mypassword"
set :scm_passphrase, "mypassword"
和貓〜/ .caprc文件:
set :scm_user, "myuser"
它的工作原理爲第一次部署的用戶。當其他用戶嘗試在他們自己的機器上執行相同操作時,它不起作用。
錯誤與git有關。看來,Git是搭售是由git的克隆第一部署
的basicaly在這些行用戶:
executing locally: "git ls-remote ssh://[email protected]/repo.git HEAD"
* executing "if [ -d /var/www/html/shared/cached-copy ];
then cd /var/www/html/shared/cached-copy
&& git fetch origin
&& git fetch --tags origin
&& git reset --hard 88d6aa98c52babe9368cf2bed36741f0f0b93ff2
&& git submodule init
&& git submodule sync
&& export GIT_RECURSIVE=$([ ! \"`git --version`\" \\< \"git version 1.6.5\" ]
&& echo --recursive)
&& git submodule update --init $GIT_RECURSIVE
&& git clean -d -x -f; else git clone ssh://[email protected]/repo.git /var/www/html/shared/cached-copy && cd /var/www/html/shared/cached-copy
&& git checkout -b deploy 88d6aa98c52babe9368cf2bed36741f0f0b93ff2
&& git submodule init
&& git submodule sync
&& export GIT_RECURSIVE=$([ ! \"`git --version`\" \\< \"git version 1.6.5\" ]
&& echo --recursive)
&& git submodule update --init $GIT_RECURSIVE; fi"
當我試圖調試這個問題,我訪問的服務器機THEOTHERUSER SSH帳號並輸入git fetch --tags origin
。它要求鍵入其他用戶的passwork。
有誰知道我能做些什麼來允許任何用戶進行部署?
UPDATE:
什麼需要做的:
set :remote, "#{scm_user}"
set :branch, "master"
http://ruby-doc.org/gems/docs/c/capistrano-edge-2.5.6/Capistrano/Deploy/SCM/Git.html