gerrit 搭建 docker ldap ldap-admin ldap 权限设置等

docker 搭建gerrit ldap ldap-admin和ldap权限设置

参考:

docker参考:docker-compose构建gerrit前端代码审计功能

ldap权限参考:搭建gerrit服务器+LDAP认证+集成gitewb详细流程

官网:https://github.com/GerritCodeReview/docker-gerrit

正文

我习惯将工程都放在root 目录下,自己创建文件夹。

创建目录

mkdir -p /root/gerrit_docker/gerrit/{etc,git,db,index,cache,.ssh}

创建初始文件 gerrit.config,在上面的etc路径下。

[gerrit]
  basePath = git
  canonicalWebUrl = http://xxxx:8089
  # 该地址是外部访问gerrit项目WEB页面的地址 注意端口号要跟docker-compose一致
  serverId = f36cfce9-24a1-4e30-a23a-b8606f49a91c

[index]
  type = LUCENE

[auth]
  type = ldap
  gitBasicAuth = true
  gitBasicAuthPolicy = HTTP

[ldap]
  server = ldap://ldap
  username = cn=admin,dc=example,dc=org
  accountBase = dc=example,dc=org
  accountPattern = (&(objectClass=person)(uid=${username}))
  accountFullName = displayName
  accountEmailAddress = mail
  groupBase = dc=example,dc=org

[sendemail]
  smtpServer = localhost

[sshd]
  listenAddress = *:29418

[httpd]
  listenUrl = http://*:8080/

[cache]
  directory = cache

[container]
  user = root

创建secure.config  也是在上面的创建的etc路径下:

[ldap]
  password = zjx123 # ldap管理员密码
[sendemail]
  smtpPass = PUXQIYDYSRCOLDOX # 配置邮箱的授权码 不是邮箱密码

 

在my_docker 路径下创建 docker-compose.yaml

version: '3'

services:
  gerrit:
    image: docker.io/gerritcodereview/gerrit
    ports:
      - "29418:29418"
      - "8089:8080"  # WEB项目访问地址
    depends_on:
      - ldap
    container_name: gerrit
    volumes:
      - /root/gerrit_docker/gerrit/etc:/var/gerrit/etc
      - /root/gerrit_docker/gerrit/git:/var/gerrit/git
      - /root/gerrit_docker/gerrit/db:/var/gerrit/db
      - /root/gerrit_docker/gerrit/index:/var/gerrit/index
      - /root/gerrit_docker/gerrit/cache:/var/gerrit/cache
    environment:
      - CANONICAL_WEB_URL=http://xxxxx:8089
    # command: init  # 初始化gerrit镜像配置 不用注释 启动完成后注释该项

  ldap:
    image: docker.io/osixia/openldap
    ports:
      - "389:389"
      - "636:636"
    container_name: ldap
    environment:
      - LDAP_ADMIN_PASSWORD=zjx123
    volumes:
      - /root/gerrit_docker/gerrit/ldap/var:/var/lib/ldap
      - /root/gerrit_docker/gerrit/ldap/etc:/etc/ldap/slapd.d

  ldap-admin:
    image: docker.io/osixia/phpldapadmin
    container_name: ldap-admin   
    ports:
      - "6443:443"
    environment:
      - PHPLDAPADMIN_LDAP_HOSTS=ldap

到此 配置文件已经配置完毕。

安装gerrit docker

第一步,在上面yaml 文件中,将 command: init 的注释放开

启动容器

docker-compose up gerrit

看日志,看到输出

Initialized /var/gerrit

一会就会自动停止,这样初始化就完成了。

第二步,将第一步的放开的注释,再次注释起来,启动容器

docker-compose up -d

如果启动容器没有起来 docker logs gerrit -f 查看日志发现 报错如下

Initializing Gerrit site …
fatal: /var/gerrit/etc/mail
fatal: Cannot make directory /var/gerrit/etc/mail

 那么 就对挂载在宿主机上得gerrit整个目录 执行

chown -R 1000:1000 /data/gerrit/

再次启动

docker-compose up -d

通过 docker-compose logs -f 实时查看容器的log。看到 gerrit ready 这样gerrit就准备好了。

ldap-admin账户管理

登录 https:xxxx:6443  [注意,一定要用https,不然登不进去]
账号 cn=admin,dc=example,dc=org
密码 zjx123

登录后,下面开始创建用户;

先创建一个 子条目【create a child entry 】

再创建一个 组,名字我这里写  developer

创建admin 用户

user id 就是 后面登录 gerrit 的账户,密码还是密码。

同理在创建一个dev1 账户。

gerrit 中,第一个登录的账户就会是管理员账户,所以记得首先用admin账户去首次 登录gerrit。

可以发现,里面没有email,这个对gerrit 也是需要的,所以需要手动添加属性。

找到email 属性,添加内容。

gerrit 配置

访问gerrit, http://xxxxx:8089

首先登录admin 账户

创建仓库

给dev1 普通用户赋予权限

通过上面的 name 名,将dev1 添加到 service users组中

给dump仓库中赋予组权限

大概参照一下上面的图片改动,不细说,细节自己定义吧。

再把仓库拉下来,然后修改一下文件,提交commit,git push origin HEAD:refs/for/master 将代码推到缓存区。

 

我没有邮箱发送邮件的需要,所以没有给gerrit 配置邮箱服务,如果有需要,请见第一章的 参考文章中,大佬有配置邮箱的操作。

 

posted @   年华似水゛  阅读(435)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示