docker 单点安装gitlab 和 girret 搭建代码审查和仓库系统
要使用Docker单点安装GitLab和Gerrit以搭建代码审查和仓库系统,你需要分别处理这两个服务,因为它们通常不被设计为在同一容器内运行。下面我将指导你如何单独设置GitLab和Gerrit。
# 1. 安装 GitLab 使用 Docker
# 步骤一:拉取 GitLab 的 Docker 镜像
docker pull gitlab/gitlab-ce:latest
1
# 步骤二:启动 GitLab 容器
docker run --detach \
--hostname=120.26.69.91 \
--publish=443:443 --publish=80:80 --publish=2222:22 \
--name=gitlab \
--restart=always \
-v /home/app/gitlab/data:/var/opt/gitlab \
-v /home/app/gitlab/logs:/var/log/gitlab \
-v /home/app/gitlab/config:/etc/gitlab \
gitlab/gitlab-ce:latest
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
请替换your-gitlab-hostname为你实际使用的主机名或IP地址,并根据需要调整数据、日志和配置目录路径。 默认账号root
docker exec -it 6ca9911f5dba grep 'Password:' /etc/gitlab/initial_root_password
1
AZiNeYuicJba5rbgx8jd8Dcr51tYUYEUV0L9Uci1AO4=
# 2. 安装 Gerrit 使用 Docker
# 步骤一:创建一个用于存储 Gerrit 数据的目录
mkdir -p /home/app/gerrit/gerrit_data
mkdir -p /home/app/gerrit/var
chmod 777 /home/app/gerrit/var
1
2
3
4
2
3
4
# 步骤二:拉取 Gerrit 的 Docker 镜像
docker pull gerritcodereview/gerrit:latest
1
# 步骤三:初始化 Gerrit
docker run --rm=true \
--volume=/home/app/gerrit/gerrit_data:/data \
gerritcodereview/gerrit:latest init -d /data
1
2
3
2
3
# 步骤四:启动 Gerrit 容器
docker run --detach \
--hostname=120.26.69.91:8080 \
--publish=29418:29418/tcp \
--publish=29418:29418/udp \
--publish=8080:8080 \
--name=gerrit \
-v /home/app/gerrit/gerrit_data:/data \
gerritcodereview/gerrit:latest start
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
同样,请替换your-gerrit-hostname为你实际使用的主机名或IP地址,并根据需要调整数据目录路径。 -v /home/app/gerrit/etc:/var/gerrit/etc \
/var/gerrit/ gerrit.config
[gerrit]
basePath = git
canonicalWebUrl = http://120.26.69.91:8082
serverId = 46638ea3-9565-4a4c-b924-9c8268614f19
[database]
type = h2
database = db/ReviewDB
[index]
type = LUCENE
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = *:29418
"gerrit.config" 36L, 1231C
[gerrit]
basePath = git
canonicalWebUrl = http://120.26.69.91:8082
serverId = 46638ea3-9565-4a4c-b924-9c8268614f19
[database]
type = h2
database = db/ReviewDB
[index]
type = LUCENE
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:8082/
filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
[gerrit]
firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
[cache]
directory = cache
[plugins]
allowRemoteAdmin = true
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
user = root
javaHome = /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-3.el8_5.x86_64
javaOptions = -Djava.security.egd=file:/dev/./urandom
javaOptions = --add-opens java.base/java.net=ALL-UNNAMED
javaOptions = --add-opens java.base/java.lang.invoke=ALL-UNNAMED
javaOptions = -Djava.security.egd=file:/dev/./urandom
javaOptions = --add-opens java.base/java.net=ALL-UNNAMED
javaOptions = --add-opens java.base/java.lang.invoke=ALL-UNNAMED
[receive]
enableSignedPush = false
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
注意事项:
- 确保网络配置正确,允许外部访问这些端口。
- 对于生产环境,考虑使用更复杂的配置来增强安全性,例如SSL证书和防火墙规则。
- 可能还需要额外的服务,比如LDAP集成或者SMTP邮件服务器,这取决于具体需求。
这样,你就有了基于Docker的GitLab和Gerrit环境,可以用来进行代码托管和代码审查了。
# gerrit部署同步到gitlab
# 查看gerrit服务器replication插件状态
root@lili:/opt/gerrit/review_site/etc#
ssh -p 29418 admin@120.26.69.91 gerrit plugin ls grep replication
replication v3.6.1 3.6.1 ENABLED replication.jar
root@lili:/opt/gerrit/review_site/etc#
ssh -p 29418 admin@120.26.69.91 gerrit plugin reload replication
root@lili:/opt/gerrit/review_site/etc#
ssh -p 29418 admin@120.26.69.91 gerrit plugin ls grep replication
replication v3.6.1 3.6.1 ENABLED replication.jar
root@lili:/opt/gerrit/review_site/etc#
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 查看密钥
cat ~/.ssh/id_rsa.pub
#生成密钥
ssh-keygen -m PEM
1
2
3
2
3
测试链接
ssh -T -p 2222 git@120.26.69.91
debug
ssh -Tv -p 2222 git@120.26.69.91
1
2
3
2
3

克隆地址要有ssh协议
git clone ssh://git@120.26.69.91:2222/root/test.git
1
# 同步配置
# 复制具体项目
/var/gerrit/etc/replication.config 没有的话新建
[remote "longge"]
projects = longge
url = ssh://git@120.26.69.91:2222/root/test.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3
1
2
3
4
5
6
7
2
3
4
5
6
7
# 复制所有项目
[remote "longge"]
projects = *
url = ssh://git@120.26.69.91:2222/root/${name}.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3
1
2
3
4
5
6
7
2
3
4
5
6
7
# 查看日志
/var/gerrit/logs
cd /var/gerrit/etc
1
2
2
编辑 (opens new window)
上次更新: 2024/07/02, 02:58:38