2013-05-10 194 views
0

我想安裝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

回答

1

如果更換什麼庫行嗎?

set :repository, "ssh://myserver.com/repo.git" 
1

如果要將私有回購作爲非通用用戶進行部署,則必須設置ssh代理轉發。這樣你的SSH密鑰也將在服務器上使用。

查看關於該主題的extensive GitHub documentation