Gerrit Code Review *** Docker 镜像提供开箱即用的配置,包含 H2 数据库和 DEVELOPMENT 账户设置。
该镜像可直接用于培训或 staging 环境;若用于生产,需作为基础镜像,自定义 gerrit.config 并配置持久化外部模块。
以下步骤可快速启动 Gerrit 的演示/ staging 环境:
运行 Docker 命令:
bashdocker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit
等待几分钟,直至出现 Gerrit Code Review NNN ready 消息(NNN 为当前 Gerrit 版本)。
打开浏览器访问 `[***] 即可使用 Gerrit。
注意:若 Docker 服务器运行在远程主机,需将 localhost 替换为远程主机的域名或 IP。
从 2.14 版本开始,新增引导页面,可指导基础操作并从 Gerrit CI 下载安装额外插件。
如需运行指定版本(如 3.3.0),可使用带标签的镜像:
bashdocker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit:3.3.0
Git 仓库中已为各 Gerrit 版本(如 3.3.0)打标签,标签指向对应版本 Dockerfile 的代码状态。构建步骤:
检出目标版本标签:
bashgit checkout v3.3.0
进入系统对应目录(centos/8 或 ubuntu/20),运行构建命令:
bashdocker build -t gerritcodereview/gerrit:$(git describe) .
如需测试自定义 Gerrit 构建,通过 GERRIT_WAR_URL 参数指定 Gerrit war 包 URL:
bashdocker build --build-arg GERRIT_WAR_URL="<war包URL>" -t gerritcodereview/gerrit -f Dockerfile-dev .
默认 URL 指向 Gerrit CI 上 master 分支的最新成功构建结果。
通过 Docker 持久卷可在重启后保留 Gerrit 数据。以下是 docker-compose.yaml 示例,挂载 Git 仓库、索引和缓存目录:
yamlversion: '3' services: gerrit: image: gerritcodereview/gerrit volumes: - git-volume:/var/gerrit/git # Git 仓库数据 - index-volume:/var/gerrit/index # 索引数据 - cache-volume:/var/gerrit/cache # 缓存数据 ports: - "29418:29418" # SSH 端口 - "8080:8080" # HTTP 端口 volumes: git-volume: index-volume: cache-volume:
运行 docker-compose up 启动配置。
可通过以下环境变量修改 Gerrit 配置:
CANONICAL_WEB_URL:可选,设置 gerrit.config 中的 gerrit.canonicalWebUrl,默认值为 http://<镜像主机名>。HTTPD_LISTEN_URL:可选,覆盖 gerrit.config 中的 httpd.listenUrl 参数。生产环境需注意:使用高性能外部存储(优于 Docker 内部 AUFS)、独立配置目录(便于变更追踪),并配置外部认证(如 LDAP)。
假设外部目录 /external/gerrit 已存在,以下是完整配置(含 OpenLDAP 和 PhpLdapAdmin):
yamlversion: '3' services: gerrit: image: gerritcodereview/gerrit ports: - "29418:29418" - "80:8080" depends_on: - ldap volumes: - /external/gerrit/etc:/var/gerrit/etc # 配置文件 - /external/gerrit/git:/var/gerrit/git # Git 仓库 - /external/gerrit/db:/var/gerrit/db # 数据库 - /external/gerrit/index:/var/gerrit/index # 索引 - /external/gerrit/cache:/var/gerrit/cache # 缓存 environment: - CANONICAL_WEB_URL=[***] # command: init # 初始化时取消注释 ldap: image: osixia/openldap ports: - "389:389" - "636:636" environment: - LDAP_ADMIN_PASSWORD=secret volumes: - /external/gerrit/ldap/var:/var/lib/ldap # LDAP 数据 - /external/gerrit/ldap/etc:/etc/ldap/slapd.d # LDAP 配置 ldap-admin: image: osixia/phpldapadmin ports: - "6443:443" environment: - PHPLDAPADMIN_LDAP_HOSTS=ldap
/external/gerrit/etc/)ini[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 = [***]] directory = cache [container] user = root
/external/gerrit/etc/,存储敏感信息)ini[ldap] password = secret # LDAP 管理员密码
外部文件系统需通过 gerrit.war 初始化(创建 All-Projects、All-Users 仓库及系统组 UUID):
docker-compose.yaml 中 gerrit 服务的 command: init 注释。bashdocker-compose up gerrit
Initialized /var/gerrit 后,容器会自动退出。command: init,启动所有服务:
bashdocker-compose up -d
PhpLdapAdmin 可通过 `[***] 访问,用于管理 LDAP 用户。首次登录 Gerrit 的用户会被设为管理员,需提前在 LDAP 中创建管理员账户。
cn=admin,dc=example,dc=orgsecret访问 [***] gerritadmin和密码secret` 登录,完成初始化配置。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429