Jenkins Can';在git服务器中找不到自定义挂钩的项目存储库

Jenkins Can';在git服务器中找不到自定义挂钩的项目存储库,jenkins,docker-compose,gitlab,githooks,gitlab-omnibus,Jenkins,Docker Compose,Gitlab,Githooks,Gitlab Omnibus,我使用docker compose运行本地gitlab服务器 git: container_name: git-server image: gitlab/gitlab-ce:latest hostname: 'gitlab.example.com' ports: - '8090:80' - '22:22' volumes: - "$PWD/srv/gitlab/config:/etc/gitlab" - "$

我使用docker compose运行本地gitlab服务器

git:
    container_name: git-server
    image: gitlab/gitlab-ce:latest
    hostname: 'gitlab.example.com'
    ports:
      - '8090:80'
      - '22:22'
    volumes:
      - "$PWD/srv/gitlab/config:/etc/gitlab"
      - "$PWD/srv/gitlab/logs:/var/log/gitlab"
      - "$PWD/srv/gitlab/data:/var/opt/gitlab"
    networks:
      - net
我想为我在gitlab webUI中创建的项目repo设置自定义挂钩,以便它触发jenkins作业。根据gitlab文档,这是omnibus安装中repo的路径,在这里我必须创建定制的hooks目录

/var/opt/gitlab/git-data/repositories/<group>/<project>.git
我试着用find搜索。但它什么也没回来。我尝试在我的项目repo中按文件名搜索,但也并没有返回任何内容

在gitlab webUI中,我可以看到所有内容。但是在服务器中,文件和目录都不存在

当我ssh到gitlab服务器时,我怎么在repos中找不到任何文件

由于我不能这样做,我尝试在全局hooks目录/opt/gitlab/embedded/service/gitlab shell/hooks下创建一个post-receive.d目录,然后添加我的post-receive文件,如下所示

#!/bin/bash


# Get branch name from ref head

if ! [ -t 0 ]; then
  read -a ref
fi
IFS='/' read -ra REF <<< "${ref[2]}"
branch="${REF[2]}"

if [ "$branch" == "master" ]; then
crumb=$(curl -u "jenkins:1234" -s 'http://jenkins:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
curl -u "jenkins:1234" -H "$crumb" -X POST http://jenkins:8080/job/maven/build?delay=0sec

  if [ $? -eq 0 ] ; then
    echo "*** Ok"
  else
    echo "*** Error"
  fi
#/bin/bash
#从ref head获取分支名称
如果[-t0];然后
阅读-参考
fi
IFS='/'读取-ra REF
在/var/opt/gitlab/git data/repositories中,我根本看不到组目录或项目目录

root@gitlab:~# ls -lt /var/opt/gitlab/git-data/repositories
total 0
drwxr-s---. 3 git root 16 Apr 18 04:05 @hashed
drwxr-sr-x. 3 git root 17 Apr 18 04:00 +gitaly
root@gitlab:~#
“文档”包括以下卷:

  volumes:
    - '$GITLAB_HOME/gitlab/config:/etc/gitlab'
    - '$GITLAB_HOME/gitlab/logs:/var/log/gitlab'
    - '$GITLAB_HOME/gitlab/data:/var/opt/gitlab'
这意味着如果您在
$GITLAB\u HOME/GITLAB/data/git data/repositories
中本地看到一些回购协议,那么您应该在
/var/opt/GITLAB/git data/repositories/
中看到相同的回购协议


当然,假设您在GitLab实例中至少创建了一个projet/repo。

如果您在容器中运行以下命令,您应该会看到您的组repo

gitlab-rake gitlab:storage:rollback_to_legacy

我在本地目录中也没有看到。但在gitab webUI中,它就在那里。我可以看到我在ProjectRepo中创建的组、项目和文件。在通过webUI创建了空项目目录之后,我对其进行了git克隆。然后推送文件,这同样反映在gitlab webUI中——组、项目回购和文件。但当我登录到gitlab服务器并搜索它们时,我找不到任何内容。@BeingGokul如何通过Docker compose启动gitlab?你们有定义的音量吗?有。已将问题编辑为包含docker compose。我关心的是,在gitlab webUI中,我看到了我创建的jenkins组,在其中,我创建了maven项目。然后在本地克隆并推送文件。同样的情况也反映在webUI中。但是当我登录到gitlab服务器并搜索它以便添加自定义钩子目录并定义钩子时,就没有了。不是组名为“jenkins”或项目名为“maven.git”的目录,比方说我根本没有定义卷。我的问题是,我应该在gitlab服务器容器中找到项目目录和文件,对吗?因为当我登录webUI时它就在那里。所以,它应该被储存在容器的某个地方。。根据gitlab文档,/var/opt/gitlab/git data/repositories//.git是路径。但我什么也没看到。我想你还是误解了我。我不在乎我是否能在本地看到它。我唯一的问题是,我运行了一个名为git server的docker容器,并从webUI创建了组(jenkins)和项目(maven)。现在,我使用命令“dockerexec-it gitserver bash”进入容器。现在,根据gitlab文档,组和项目详细信息将位于/var/opt/gitlab/git data/repositories/.git路径下。但是没有。
gitlab-rake gitlab:storage:rollback_to_legacy