![](/img/trans.png)
[英]Capistrano 3 - access denied to git repository on production server
[英]Capistrano + Git : repository local to production server
我正在嘗試為我的應用程序“部署:冷”。 git倉庫是我的部署服務器本地的(即我只有一台服務器用於所有東西,我不在github上托管我的代碼)。
這是成績單(將我的應用名稱替換為“myapp”以獲取隱私)
* executing `deploy:cold'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
executing locally: "git ls-remote /home/mrichman/git/myapp.git master"
fatal: '/home/mrichman/git/myapp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/myapp.com/releases/20100218203108; true"
servers: ["myapp.com"]
Password:
[myapp.com] executing command
command finished
Command git ls-remote /home/mrichman/git/myapp.git master returned status code 32768
這是我的deploy.rb: http ://pastie.org/831424
我也試過了
set :repository, "deploy@localhost:/home/mrichman/git/myapp.git"
但這給了我
ssh: connect to host localhost port 22: Connection refused
任何想法都表示贊賞。
剛遇到同樣的問題。 關鍵是不要使用deploy_via復制,而是設置:local_repository
應將其設置為用於從開發計算機/筆記本電腦訪問存儲庫的URL。
所以我的
set :repository, "file:///srv/git/myapp.git"
set :local_repository, "nameOfHostFromSSHConfig:/srv/git/myapp.git"
似乎有效。 請記住,然后刪除deploy_via副本行。
以您要部署的站點的用戶身份登錄,並嘗試查看您的用戶是否有權訪問該目錄:
ls -la /home/mrichman/git/myapp.git
如果您收到Permission denied錯誤,那么您必須確保在存儲庫的封閉目錄上設置允許部署腳本訪問文件的權限。
我的問題實際上與已知主機問題有關。 我所要做的就是確保遠程git服務器在我的已知主機中(第一次嘗試SSH進入它會提示你自己添加它),它就像一個魅力。
如果設置了local_repository
,則Capistrano將使用部署服務器中的respository
值和開發服務器中的local_respository
值。 或類似的東西。
我的配置工作如下:
set :repository, "/home/#{user}/path/to/repo.git"
set :local_repository, "myserver.com:path/to/repo.git"
確保你已經編寫了正確的git repo,並且注重案例敏感的寫作! (我遇到了同樣的問題,它剛剛解決了)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.