Я установил базовый контейнер докера с помощью git.По какой-то причине я получаю следующую ошибку
remote: error: insufficient permission for adding an object to repository database /git-server/repos/ansible.git/./objects/incoming-JPCnWj
remote: fatal: failed to write object
error: remote unpack failed: unpack-objects abnormal exit
To ssh://nas.:2222/git-server/repos/ansible.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://git@nas.:2222/git-server/repos/ansible.git'
Теперь я просмотрел множество веб-сайтов перед публикацией, так что вот мои настройки.
- Я нажимал наGitHub прежде, чем я попытался отправить на свой NAS (контейнер докера)
Я удалил все ссылки на источник (Github) и добавил вместо этого свой NAS.
$ git remote -v origin ssh://git@nas.:2222/git-server/repos/ansible.git (выборка) origin ssh: // git @ nas.: 2222 / git-server / repos / ansible.git (push)
Я проверил разрешение на клиенте
$ ls -lFa .git
total 56
drwxrwxr-x. 8 jdoe jdoe 4096 Dec 6 10:19 ./
drwxrwxr-x. 8 jdoe jdoe 4096 Dec 5 10:52 ../
-rw-rw-r--. 1 jdoe jdoe 35 Dec 4 11:47 COMMIT_EDITMSG
-rw-rw-r--. 1 jdoe jdoe 23 Dec 4 11:01 HEAD
drwxrwxr-x. 2 jdoe jdoe 4096 Dec 4 11:00 branches/
-rw-rw-r--. 1 jdoe jdoe 222 Dec 6 10:19 config
-rw-rw-r--. 1 jdoe jdoe 73 Dec 4 11:00 description
drwxrwxr-x. 2 jdoe jdoe 4096 Dec 4 11:00 hooks/
-rw-rw-r--. 1 jdoe jdoe 1703 Dec 4 11:47 index
drwxrwxr-x. 2 jdoe jdoe 4096 Dec 4 11:00 info/
drwxrwxr-x. 3 jdoe jdoe 4096 Dec 4 11:01 logs/
drwxrwxr-x. 75 jdoe jdoe 4096 Dec 4 11:47 objects/
-rw-rw-r--. 1 jdoe jdoe 46 Dec 5 18:41 packed-refs
drwxrwxr-x. 5 jdoe jdoe 4096 Dec 4 11:01 refs/
И на сервере (контейнере)
$ ls -lFa
total 36
drwxr-xr-x 1 git users 1344 Dec 6 09:16 ./
drwxr-x--- 1 git users 168 Dec 6 09:16 ../
-rw-r--r-- 1 git users 23 Dec 6 09:16 HEAD
drwxr-xr-x 1 git users 0 Dec 6 09:16 branches/
-rw-r--r-- 1 git users 66 Dec 6 09:16 config
-rw-r--r-- 1 git users 73 Dec 6 09:16 description
drwxr-xr-x 1 git users 2000 Dec 6 09:16 hooks/
drwxr-xr-x 1 git users 168 Dec 6 09:16 info/
drwxr-xr-x 1 git users 504 Dec 6 09:29 objects/
drwxr-xr-x 1 git users 336 Dec 6 09:16 refs/
И пользователь на сервере действительно git
$ id git
uid=1027(git) gid=100(users) groups=100(users)
Git uid равен 1027, поэтому он соответствует пользователю на NAS и не вызывает проблем с разрешениями.
Я единственный, кто использует git-сервер.Я пытаюсь нажать код с помощью следующей команды (с помощью клавиши ssh)
$ git push --mirror ssh://git@nas.:2222/git-server/repos/ansible.git
По совету Торека я добавляю git trace, но это не помогает.Из того, что я могу сказать, просто более многословно говорить, что мое разрешение неверно?!?
$ GIT_TRACE=2 GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_SETUP=2 git push -v origin master
12:32:30.762269 trace.c:318 setup: git_dir: .git
12:32:30.762371 trace.c:319 setup: git_common_dir: .git
12:32:30.762388 trace.c:320 setup: worktree: /home/jdoe/Developement/ansible/ansible
12:32:30.762398 trace.c:321 setup: cwd: /home/jdoe/Developement/ansible/ansible
12:32:30.762416 trace.c:322 setup: prefix: (null)
12:32:30.762433 git.c:415 trace: built-in: git push -v origin master
Pushing to ssh://git@nas:2222/git-server/repos/ansible.git
12:32:30.763365 run-command.c:643 trace: run_command: unset GIT_PREFIX; ssh -p 2222 git@nas 'git-receive-pack '\''/git-server/repos/ansible.git'\'''
12:32:30.916274 pkt-line.c:80 packet: push< 0000000000000000000000000000000000000000 capabilities^{}\0report-status delete-refs side-band-64k quiet atomic ofs-delta agent=git/2.11.0
12:32:30.916346 pkt-line.c:80 packet: push< 0000
12:32:30.916444 pkt-line.c:80 packet: push> 0000000000000000000000000000000000000000 02be3c652232a8075f1ea6dc49b5e3feb2b80e0b refs/heads/master\0 report-status side-band-64k agent=git/2.19.2
12:32:30.916466 pkt-line.c:80 packet: push> 0000
12:32:30.916604 run-command.c:643 trace: run_command: git pack-objects --all-progress-implied --revs --stdout --thin --delta-base-offset --progress
12:32:30.918739 trace.c:318 setup: git_dir: .git
12:32:30.918784 trace.c:319 setup: git_common_dir: .git
12:32:30.918791 trace.c:320 setup: worktree: /home/jdoe/Developement/ansible/ansible
12:32:30.918796 trace.c:321 setup: cwd: /home/jdoe/Developement/ansible/ansible
12:32:30.918801 trace.c:322 setup: prefix: (null)
12:32:30.918806 git.c:415 trace: built-in: git pack-objects --all-progress-implied --revs --stdout --thin --delta-base-offset --progress
Enumerating objects: 90, done.
Counting objects: 100% (90/90), done.
Delta compression using up to 4 threads
Compressing objects: 100% (83/83), done.
Writing objects: 100% (90/90), 15.87 KiB | 3.17 MiB/s, done.
Total 90 (delta 30), reused 0 (delta 0)
12:32:30.950405 pkt-line.c:80 packet: sideband< \2error: insufficient permission for adding an object to repository database /git-server/repos/ansible.git/./objects/incoming-
12:32:30.950448 pkt-line.c:80 packet: sideband< \2LKk1Fxfatal: failed to write object
remote: error: insufficient permission for adding an object to repository database /git-server/repos/ansible.git/./objects/incoming-LKk1Fx
remote: fatal: failed to write object
12:32:30.950474 pkt-line.c:80 packet: sideband< \10028unpack unpack-objects abnormal exit0028ng refs/heads/master unpacker error0000
12:32:30.950515 pkt-line.c:80 packet: push< unpack unpack-objects abnormal exit
error: remote unpack failed: unpack-objects abnormal exit
12:32:30.950571 pkt-line.c:80 packet: push< ng refs/heads/master unpacker error
12:32:30.950584 pkt-line.c:80 packet: push< 0000
12:32:30.952843 pkt-line.c:80 packet: sideband< 0000
To ssh://nas:2222/git-server/repos/ansible.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://git@nas:2222/git-server/repos/ansible.git'
Что я делаю не так?Я думаю, что это что-то легкое, но я слишком долго этим занимался.У меня есть туннельное зрение.;)
Любая помощь приветствуется.
Спасибо.Ed