Tôi đang cố gắng thiết lập gitlab (6.5.1) trên một máy chủ sạch mới. Mọi thứ dường như hoạt động, nhưng git không thể đẩy vào bất kỳ dự án nào. Thực hiện theo các lệnh từ trang dự án mới được tạo và đẩy đến điều khiển từ xa thông qua ssh cho:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
Đây dường như là một vấn đề khá phổ biến. Thật không may, nó dường như có một số nguyên nhân tiềm năng và không ai trong số chúng dường như phù hợp. Từ vấn đề 3424 về một bản phát hành cũ và nhiều nguồn khác trực tuyến tôi đã xem và kiểm tra các đề xuất sau:
Phím ssh còn lại
Đây là một thiết lập sạch sẽ không có thức ăn thừa. Khóa của tôi đã được thêm vào tệp khóa được ủy quyền đúng cách và là khóa duy nhất được liệt kê.
Chạy ssh với ghi nhật ký gỡ lỗi hiển thị các lỗi liên quan đến vars môi trường Ruby.
Của tôi đi lên sạch sẽ. Gỡ lỗi SSH cho thấy một kết nối thành công. Tất cả mọi thứ về bắt tay xác thực là bình thường, sau đó đây là kết thúc của đầu ra:
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
Các vấn đề với môi trường vỏ gitlab.
Không giống như nhiều người khác có cùng thông báo lỗi ở trên, tập lệnh kiểm tra gitlab-shell của tôi trả về một hóa đơn sạch:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
Khởi động lại {unicorn, sidekiq, redis}
Các báo cáo khởi động lại một hoặc nhiều dịch vụ sẽ xóa điều này dường như không áp dụng ở đây. Đây không phải là một vấn đề không liên tục mà sửa chữa một daemon sửa chữa.
Các repo không được tạo ra vật lý
Nhưng nó là. Lần đầu tiên mỗi lần, repo git trần
~gitlab/repositories/username/reponame.git
được tạo ra mỗi lần và dường như có quyền chính xác.Gitlab-shell không thể nói chuyện với máy chủ API vì A) sự cố DNS, B) liên kết ip / port / giao diện sai C) không có / có dấu gạch chéo.
Kịch bản kiểm tra cho biết truy cập API là tốt.
Tôi không chạy nginx, vì vậy vấn đề ràng buộc ip mặc định liên quan đến vấn đề đó là n / a.
Tôi đã thử cả hai
*:8080
và127.0.0.1:8080
cho giá trị nghe trongunicorn.yml
.Ngoài ra, tôi đã thử nhiều lần lặp khác nhau của localhost, 127.0.0.1 và tên miền đủ điều kiện (được DNS giải quyết tốt) có và không có dấu gạch chéo
shell.yml
không có kết quả. Tôi cũng đã thử kết nối trực tiếp với máy chủ kỳ lân trên cổng 8080 thay vì máy chủ SSL / proxy Apache trên cổng 80. Dường như không có gì khác biệt. Chứng chỉ của tôi không tự ký và đang hoạt động tốt cho các trình duyệt, nhưngself_signed_cert: true
dù sao tôi cũng đã thử cài đặt . Không có gì.Các đường dẫn git được báo cáo là sai, thêm đường dẫn đủ điều kiện từ nhà người dùng gitlab.
Đây có vẻ là một đề xuất hợp pháp nếu gitlab-shell không thực hiện một số thao tác khỉ để sửa lỗi này, nhưng tôi đã thử thay đổi
git remote add origin gitlab@server:username/reponame.git
thành `` git remote add origin gitlab @ server: reporiesories / username / reponame.git`. Cùng một lỗi.
Đây có vẻ là một loạt các giải pháp được đề xuất, nhưng không ai trong số họ có vẻ đúng. Lưu ý tôi có thể đẩy qua http. Dấu nhắc đăng nhập chấp nhận tên người dùng và mật khẩu ldap của tôi và chấp nhận đẩy. Đây chỉ là một vấn đề khi cố gắng sử dụng SSH. Chỉ kiểm tra phần đăng nhập ssh với ssh -T gitlab@server
hoạt động tốt.
Điều gì khác có thể gây ra lỗi này?
Làm thế nào để một người đi về gỡ lỗi một vấn đề như vậy trong gitlab? Dường như không có gì liên quan cả ~gitlab/gitlab-shell/gitlab-shell.log
. Trường hợp một thông báo lỗi thông tin hơn sẽ được tìm thấy?