2010-09-30 5 views
9

Tôi nhận được lỗi tiếp theo khi tôi cố thực hiện triển khai thông qua tài khoản người dùng "triển khai".cơn ác mộng triển khai capistrano

1782001..ae10d1b master -> master 
** transaction: start 
    * executing `deploy:update_code' 
    updating the cached checkout on all servers 
    executing locally: "git ls-remote [email protected]:username/app_name.git master" 
    * executing "if [ -d /var/www/app_name/shared/cached-copy ]; then cd /var/www/app_name/shared/cached-copy && git fetch -q origin && git reset -q --hard ae10d1bfe43820d8d69bbc92761a3f666cf56765 && git clean -q -d -x -f; else git clone -q [email protected]:username/app_name.git /var/www/app_name/shared/cached-copy && cd /var/www/app_name/shared/cached-copy && git checkout -q -b deploy ae10d1bfe43820d8d69bbc92761a3f666cf56765; fi" 
    servers: ["173.230.158.13"] 
    [173.230.158.13] executing command 
** [173.230.158.13 :: out] error: cannot open .git/FETCH_HEAD: Permission denied 
** 
    command finished 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /var/www/app_name/releases/20100930022459; true" 
    servers: ["173.230.158.13"] 
    [173.230.158.13] executing command 
    command finished 
failed: "sh -c 'if [ -d /var/www/app_name/shared/cached-copy ]; then cd /var/www/app_name/shared/cached-copy && git fetch -q origin && git reset -q --hard ae10d1bfe43820d8d69bbc92761a3f666cf56765 && git clean -q -d -x -f; else git clone -q [email protected]:username/app_name.git /var/www/app_name/shared/cached-copy && cd /var/www/app_name/shared/cached-copy && git checkout -q -b deploy ae10d1bfe43820d8d69bbc92761a3f666cf56765; fi'" on 173.230.158.13 

tôi có thể xác minh rằng tôi có thể làm một "clone git" sử dụng tài khoản triển khai trên máy chủ và ssh để [email protected]

Các công thức nấu ăn cùng làm việc tốt nếu tôi chỉ định "gốc" dưới dạng: biến người dùng.

Đây là deploy.rb tôi

http://pastie.org/1189919

Ngoài ra, tôi không chắc chắn chính xác những gì hiện: biến nhóm nào trong mục này.

drwxr-xr-x 14 deploy www-data 4096 2010-09-29 20:38 . 
drwxr-xr-x 10 deploy www-data 4096 2010-09-29 20:38 .. 
drwxr-xr-x 7 deploy www-data 4096 2010-09-29 13:13 app 
-rwxr-xr-x 1 deploy www-data 240 2010-09-29 20:38 Capfile 
drwxr-xr-x 5 deploy www-data 4096 2010-09-29 20:38 config 
drwxr-xr-x 4 deploy www-data 4096 2010-09-29 20:38 db 
drwxr-xr-x 2 deploy www-data 4096 2010-09-29 20:38 doc 
drwxr-xr-x 9 deploy www-data 4096 2010-09-29 20:38 generate 
drwxr-xr-x 8 deploy www-data 4096 2010-09-29 20:38 .git 
-rwxr-xr-x 1 deploy www-data 156 2010-09-29 20:38 .gitignore 
-rwxr-xr-x 1 deploy www-data 145 2010-09-29 20:38 .gitignore~ 
drwxr-xr-x 3 deploy www-data 4096 2010-09-29 20:38 lib 
lrwxrwxrwx 1 deploy www-data  28 2010-09-29 20:38 log -> /var/www/voteable/shared/log 
drwxr-xr-x 5 deploy www-data 4096 2010-09-29 20:38 public 
-rwxr-xr-x 1 deploy www-data 457 2010-09-29 20:38 Rakefile 
-rwxr-xr-x 1 deploy www-data 10011 2010-09-29 20:38 README 
-rwxr-xr-x 1 deploy www-data  41 2010-09-29 20:38 REVISION 
drwxr-xr-x 3 deploy www-data 4096 2010-09-29 20:38 script 
drwxr-xr-x 6 deploy www-data 4096 2010-09-29 20:38 test 
drwxr-xr-x 2 deploy www-data 4096 2010-09-29 20:38 tmp 
-rwxr-xr-x 1 deploy www-data 810605 2010-09-29 20:38 uninstall 
drwxr-xr-x 3 deploy www-data 4096 2010-09-29 13:13 vendor 

Trả lời

11

Bạn cần phải chắc chắn rằng bạn sở hữu .git vì vậy bạn không bao giờ nên làm một kiểm tra như là người chủ hoặc bạn sẽ chạy vào vấn đề này.

chmod -R ug+rw .git sẽ khắc phục sự cố lần này nhưng bạn phải tinh tấn về việc giữ đồng nghiệp của mình không thực hiện các hướng dẫn về quyền nhóm git pull hoặc thiết lập chính xác quyền nhóm.

+0

Ai là "bạn" trong bạn sở hữu .git. tài khoản triển khai? Vui lòng xem bài đăng khác của cùng một vấn đề tương tự/này .. có thể liên quan http://stackoverflow.com/questions/3827331/strange-ssh-issues-with-github – badnaam

+0

Bạn là tài khoản triển khai của mình. Nếu bạn làm một 'ls -la' trên .git/FETCH_HEAD của bạn, bạn sẽ thấy rằng nó thuộc sở hữu của root. Vì vậy, bạn sẽ phải chown nó cho người dùng triển khai, hoặc chmod nó để người dùng triển khai có thể chỉnh sửa nó. –

+0

yBạn hoàn toàn chính xác. trên lưu ý đó .. Tôi đã cập nhật OP với sự cho phép trên thư mục/www/var/app của tôi. Đó có phải là những gì nó sẽ giống như hoặc nên www-dữ liệu sở hữu nó? Tôi rất không rõ ràng về ai nên sở hữu thư mục này www-data hoặc triển khai – badnaam