Sam*_*nch 10 git github jenkins
我正在尝试设置Jenkins以使用git webhooks.到目前为止我有
jenkins用户下创建了一个ssh密钥对*/develop为仅查看dev分支/data/www/<site>ubunutu组添加到jenkins用户(见下文)在尝试构建项目时,我收到此错误:
Started by user anonymous
Building in workspace /data/www/<site>
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.jenkins.url git@github.com:<repo_url> # timeout=10
ERROR: Error fetching remote repo 'jenkins'
hudson.plugins.git.GitException: Failed to fetch from git@github.com:<repo_url>
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1276)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
at hudson.model.Run.execute(Run.java:1744)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: hudson.plugins.git.GitException: Command "git config remote.jenkins.url git@github.com:<repo_url>" returned status code 255:
stdout:
stderr: error: could not lock config file .git/config: Permission denied
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1591)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1567)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1563)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1249)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1261)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.setRemoteUrl(CliGitAPIImpl.java:961)
at hudson.plugins.git.GitAPI.setRemoteUrl(GitAPI.java:160)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:723)
... 11 more
ERROR: Error fetching remote repo 'jenkins'
Run Code Online (Sandbox Code Playgroud)
repo已经被目录中的另一个用户(在这种情况下ubuntu:ubuntu)拉了/data/www/<site>,所以最初我想添加ubunutu组来jenkins修复问题,但没有运气.我也尝试以jenkins用户身份登录并拉动回购,我可以成功完成.
我试过谷歌搜索我能想到的一切,但大多数搜索指向有关键问题的人,而不是配置文件权限问题.在这一点上,我没有想法.
编辑:
ls -la在.git目录中:
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 5 12:13 branches
-rw-rw-r-- 1 ubuntu ubuntu 15 Mar 5 18:09 COMMIT_EDITMSG
-rw-rw-r-- 1 jenkins jenkins 318 Jun 1 14:55 config
-rw-rw-r-- 1 ubuntu ubuntu 73 Mar 5 12:13 description
-rw-rw-r-- 1 ubuntu ubuntu 88 May 29 12:50 FETCH_HEAD
-rw-rw-r-- 1 ubuntu ubuntu 24 May 28 13:21 HEAD
drwxrwxr-x 2 ubuntu ubuntu 4096 May 28 13:49 hooks
-rw-rw-r-- 1 ubuntu ubuntu 36480 May 29 12:50 index
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 5 12:13 info
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 5 12:13 logs
drwxrwxr-x 260 ubuntu ubuntu 4096 Apr 10 10:40 objects
-rw-rw-r-- 1 jenkins jenkins 41 May 29 11:53 ORIG_HEAD
-rw-rw-r-- 1 ubuntu ubuntu 179 Mar 5 12:13 packed-refs
drwxrwxr-x 5 ubuntu ubuntu 4096 Mar 5 12:13 refs
Run Code Online (Sandbox Code Playgroud)
ls -la 来自父目录(这是一个Laravel 5应用程序):
drwxrwxr-x 13 ubuntu ubuntu 4096 Apr 3 11:07 app
-rwxrwxr-x 1 ubuntu ubuntu 2452 Mar 5 12:13 artisan
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 11 08:18 bootstrap
-rwxrwxr-x 1 ubuntu ubuntu 1094 Mar 11 08:16 composer.json
-rw-rw-r-- 1 ubuntu ubuntu 79004 Mar 11 08:17 composer.lock
-rwxrwxr-x 1 ubuntu ubuntu 146 Mar 5 12:13 CONTRIBUTING.md
drwxrwxr-x 8 ubuntu ubuntu 4096 May 6 09:45 frontend
drwxrwxr-x 8 ubuntu ubuntu 4096 Jun 1 14:56 .git
-rwxrwxr-x 1 ubuntu ubuntu 12 Mar 5 12:13 .gitattributes
-rwxrwxr-x 1 ubuntu ubuntu 160 Mar 5 12:13 .gitignore
-rwxrwxr-x 1 ubuntu ubuntu 567 Mar 5 12:13 phpunit.xml
drwxrwxr-x 7 www-data www-data 4096 Mar 5 17:13 public
-rwxrwxr-x 1 ubuntu ubuntu 2051 Mar 5 12:13 readme.md
-rwxrwxr-x 1 ubuntu ubuntu 519 Mar 5 12:13 server.php
drwxrwxr-x 29 ubuntu ubuntu 4096 Mar 11 08:18 vendor
Run Code Online (Sandbox Code Playgroud)
团体:
$ cat /etc/group | grep jenkins
ubuntu:x:1000:jenkins
jenkins:x:113:
$ cat /etc/group | grep ubuntu
adm:x:4:syslog,ubuntu
dialout:x:20:ubuntu
cdrom:x:24:ubuntu
floppy:x:25:ubuntu
sudo:x:27:ubuntu
audio:x:29:ubuntu
dip:x:30:ubuntu
video:x:44:ubuntu
plugdev:x:46:ubuntu
netdev:x:102:ubuntu
ubuntu:x:1000:jenkins
Run Code Online (Sandbox Code Playgroud)
这对我很有效:
1- config.lock在jenkins文件夹中找到git 文件,运行:
find . -type f -name "config.lock"
2-删除已config.lock建立的文件。
而已!