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 配置邮箱服务,如果有需要,请见第一章的 参考文章中,大佬有配置邮箱的操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)