CI/CD体系

Gitlab+Gerrit+Jenkins

架构

docker部署

Bookmark: https://hub.docker.com/r/gerritcodereview/gerrit

/docker-compose.yaml 示例,假设您有一个可用的外部目录 /opt/gerrit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3'
services:
gerrit:
image: gerritcodereview/gerrit
ports:
- "29418:29418"
- "8081:8080"
depends_on:
- ldap
volumes:
- /opt/gerrit/etc:/var/gerrit/etc
- /opt/gerrit/git:/var/gerrit/git
- /opt/gerrit/db:/var/gerrit/db
- /opt/gerrit/index:/var/gerrit/index
- /opt/gerrit/cache:/var/gerrit/cache
environment:
- CANONICAL_WEB_URL=http://192.168.31.5:8081
entrypoint: /entrypoint.sh init
ldap:
image: osixia/openldap
ports:
- "389:389"
- "636:636"
environment:
- LDAP_ADMIN_PASSWORD=secret
volumes:
- /opt/gerrit/ldap/var:/var/lib/ldap
- /opt/gerrit/ldap/etc:/etc/ldap/slapd.d
ldap-admin:
image: osixia/phpldapadmin
ports:
- "6443:443"
environment:
- PHPLDAPADMIN_LDAP_HOSTS=ldap

Example of** /opt/gerrit/etc/gerrit.config**

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[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

Example of** /opt/gerrit/etc/secure.config**

1
2
[ldap]
password = secret

修改目录权限

1
chmod -R 777 /opt/gerrit/

Step-1: **第一次启动前,将docker-compose.yaml配置文件中 # entrypoint: /entrypoint.sh init 一行前面的#去掉,**执行初始化操作。

1
2
docker-compose up gerrit
docker-compose down

Step-2: 然后再重新将**entrypoint: /entrypoint.sh init**一行前面加**#**注释掉

1
docker-compose up -d

测试

1.访问

https://192.168.31.5:6443/

2.登录

账号: cn=admin,dc=example,dc=org

密码: secret

创建用户组

1
2
3
4
5
6
7
8
9
10
11
12
# baseDN.ldif 
dn: ou=Users,dc=mgsh,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Users
olcRootPW: {SSHA}h9/bFvikrALjTu6BNfxrHB8FOMfqLhGQ

dn: ou=Depts,dc=mgsh,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Depts
olcRootPW: {SSHA}h9/bFvikrALjTu6BNfxrHB8FOMfqLhGQ::

将这个baseDN.ldif拷贝到openldap的容器实例中去

1
2
3
4
5
docker cp baseDN.ldif  $containerId:/root/

docker exec -it $containerId /bin/bash

ldapadd -x -h 127.0.0.1:389 -D "cn=admin,dc=mgsh,dc=com" -f baseDN.ldif -W

{SSHA}h9/bFvikrALjTu6BNfxrHB8FOMfqLhGQ

DOCKER运行GERRIT(代码审查工具)

Bookmark: https://www.freesion.com/article/7877677490/

Gerrit+OpenLDAP+Docker配置

Gerrit没有用户注册功能,需要借助于第三方工具来完成账号注册/登陆等功能,OpenLDAP是其中一种 方案,也可以基于OAuth/htpasswd来实现。

gerrit部署使用

https://zhuanlan.zhihu.com/p/613435178

Gerrit - Gerrit与GitLab集成

https://www.cnblogs.com/anliven/p/12019974.html

Gerrit和Gitlab服务器的集成

https://www.cnblogs.com/yinzhengjie/p/11057383.html


gitlab gerrit** **sonar jenkins

win10下docker-compose搭建gitlab+gerrit+sonar+jenkins持续集成环境

https://blog.csdn.net/zhonglunshun/article/details/104659356

gitlab+gerrit+sonar+jenkins+idea集成配置

https://blog.csdn.net/zhonglunshun/article/details/104671859

1
ssh-copy-id -i id_rsa.pub gary@192.168.31.5

gerrit@jekins:~/.ssh$ ssh -p 29418 admin@192.168.31.5 gerrit plugin ls
admin@192.168.31.5: Permission denied (publickey).

添加public key到gerrit。 打開id_isa.pub, 複製內容。進入 gerrit->settings->SSH Publick key->add key, 粘貼公鑰內容。點擊add。

docker-compose openldap+phpldapadmin+gerrit安装

文章目录
  1. 1. 架构
    1. 1.1. docker部署
      1. 1.1.1. 测试
      2. 1.1.2. 创建用户组
  2. 2. docker-compose openldap+phpldapadmin+gerrit安装