Evan's blog Evan's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Evan Xu

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 学习

    • 费曼学习法
    • 笔记方法
    • 提高学习效率的策略
    • 提高记忆的技巧
    • 自律小建议
    • 处理问题的思路
    • 搜索引擎使用技巧
  • 面试

  • 心情杂货

  • 实用技巧

  • 友情链接
  • 更多
  • 实用技巧
xugaoyi
2024-06-27
目录

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

请替换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

# 步骤二:拉取 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

# 步骤四:启动 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

同样,请替换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

注意事项:

  • 确保网络配置正确,允许外部访问这些端口。
  • 对于生产环境,考虑使用更复杂的配置来增强安全性,例如SSL证书和防火墙规则。
  • 可能还需要额外的服务,比如LDAP集成或者SMTP邮件服务器,这取决于具体需求。

这样,你就有了基于Docker的GitLab和Gerrit环境,可以用来进行代码托管和代码审查了。

# gerrit部署同步到gitlab

https://blog.csdn.net/aaliliaa/article/details/133887336?share_token=1db49d87-6268-4bae-bc2d-53c901d338ba&tt_from=copy_link&utm_campaign=client_share&utm_medium=toutiao_android&utm_source=copy_link (opens new window)

# 查看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

# 查看密钥

cat ~/.ssh/id_rsa.pub
#生成密钥
ssh-keygen -m PEM
1
2
3

测试链接

ssh -T -p 2222 git@120.26.69.91
debug
ssh -Tv -p 2222 git@120.26.69.91
1
2
3

image.png

克隆地址要有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
# 复制所有项目
[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

# 查看日志

/var/gerrit/logs
cd /var/gerrit/etc
1
2
编辑 (opens new window)
上次更新: 2024/07/02, 02:58:38
最近更新
01
有了它,不同java版本切换再也不麻烦了,每个java开发都应该拥有-今日头条
07-02
02
网格布局中的动画
09-15
03
Git修改分支名
08-11
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式