跳转至

Gerrit 代码评审工具

概要: Gerrit Code Review是一个流行的代码评审工具,也是Git代码仓库。本文介绍使用Docker的方式部署Gerrit。

创建时间: 2023.08.02 23:02:51

更新时间: 2023.08.03 00:09:20

准备工作

文件结构

Text Only
$ tree
.
├── docker-compose.yaml
├── gerrit/
│   └── etc/
│       ├── gerrit.config
│       └── secure.config
└── ldap/

3 directories, 3 files

docker-compose.yaml

YAML
# https://hub.docker.com/r/gerritcodereview/gerrit
version: '3'

services:
  gerrit:
    container_name: gerrit_server
    image: gerritcodereview/gerrit
    user: root
    ports:
      - "29418:29418"
      - "80:8080"
    depends_on:
      - ldap
    volumes:
      - ./gerrit/etc:/var/gerrit/etc
      - ./gerrit/git:/var/gerrit/git
      - ./gerrit/db:/var/gerrit/db
      - ./gerrit/index:/var/gerrit/index
      - ./gerrit/cache:/var/gerrit/cache
    environment:
      - CANONICAL_WEB_URL=http://192.168.2.111:80
    # command: init  # 首次执行必须取消此行注释

  ldap:
    container_name: gerrit_openldap
    image: osixia/openldap
    restart: always
    ports:
      - "389:389"
      - "636:636"
    environment:
      - LDAP_ADMIN_PASSWORD=ladp_passwd  # 与secure.config一致
    volumes:
      - ./ldap/var:/var/lib/ldap
      - ./ldap/etc:/etc/ldap/slapd.d

  ldap-admin:
    container_name: gerrit_phpldapadmin
    image: osixia/phpldapadmin
    restart: always
    ports:
      - "443:443"
    environment:
      - PHPLDAPADMIN_LDAP_HOSTS=ldap

提示

  1. 需要写入gerrit的配置文件gerrit.config
  2. 需要写入gerrit的登录配置文件secure.config
  3. 首次启动需要取消注释上面的# command: init这一行

gerrit.config

Properties
[gerrit]
  basePath = git

[index]
  type = LUCENE

[auth]
  type = ldap
  gitBasicAuth = true

[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

[sendemail]
  smtpServer = localhost

[sshd]
  listenAddress = *:29418

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

[cache]
  directory = cache

[container]
  user = root

secure.config

Properties
[ldap]
  password = ladp_passwd

首次启动(初始化)

docker-compose.yaml# command: init这一行取消注释,然后在项目根目录执行

Bash
docker-compose up gerrit
接着,gerrit服务会自动进行初始化,等到初始化完毕,docker容器会自动停止
Bash
gerrit_server exited with code 0

正常启动

docker-compose.yamlcommand: init这一行注释掉,然后在项目根目录执行

Bash
docker-compose up -d
此时所有服务都应该正常启动,gerrit的服务会有日志输出
Text Only
Gerrit Code Review 3.x.x ready

配置LDAP帐户

登录LDAP管理网页

在成功启动服务后,由于gerrit的授权由LDAP提供,所以首先需要登录到ldap-admin网页去新建一个帐户用于登录gerrit。打开https://192.168.2.111:443网页(注意必须是https):

其中

  • Login DN填写:cn=admin,dc=example,dc=org
  • Password填写:ladp_passwd

点击Authenticate即可登录LDAP管理页面。

新建组织:gerrit

点击Create a child entry

选择Generic: Organisational Unit

填入组织名gerrit,并创建对象

新建用户组:gerrit_admin

选择我们刚刚建好的ou=gerrit,然后点击Create a child entry

选择Generic: Posix Group

填入用户组名gerrit_admin,并创建对象

新建用户:lzwang

选择我们刚刚建好的cn=gerrit_admin,然后点击Create a child entry

选择Generic: User Account

填入如图所示的信息后,创建此对象

创建完成

至此,我们的第一个LDAP帐户创建完毕(吐槽:真费劲...)。

登录gerrit

打开网页http://192.168.2.111:80,使用上面LDAP创建的帐户密码即可登录

参考