概述
GitLab 是一个开源的代码管理平台,使用 Git 作为版本控制工具,提供了 Web 界面和多种功能,如 wiki、issue 跟踪、CI/CD 等。
GitLab 可以自托管或使用 SaaS 服务,支持多种操作系统和执行器。
GitLab 可以帮助软件开发团队提高协作效率和质量。
Docker 部署 GitLab
Docker 安装:在 CentOs7 中安装宝塔面板和 Docker(包括MySQL,Redis)
拉取镜像
shell
docker pull gitlab/gitlab-ce:latest
启动容器
在容器中运行 GitLab Community Edition,将 GitLab CE 映像运行在容器中,并将其绑定到主机的 9980 和 9922 端口。
将 GitLab 的配置文件、日志和数据文件存储在主机的 /home/gitlab/etc、/home/gitlab/log 和 /home/gitlab/opt 目录中。
容器将在启动时自动重启,并以特权模式运行。
xhell
docker run -itd \
-p 9980:80 -p 9922:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
![](https://file.jishuzhan.net/article/1712686290786324481/3ca0dbd85c13ce30c8cc888fab8c8978.webp)
修改配置
进入容器内部
sh
docker exec -it gitlab /bin/bash
![](https://file.jishuzhan.net/article/1712686290786324481/99d5c5c90e3fe388a17d83b8f6842049.webp)
sh
# 修改 gitlab.rb,键盘按 i 进入编辑模式
vi /etc/gitlab/gitlab.rb
# 添加配置
# gitlab 访问地址,可以写域名。不写端口默认为 80 端口
external_url 'http://192.168.101.3'
# ssh主机 ip
gitlab_rails['gitlab_ssh_host'] = '192.168.101.3'
# ssh 连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
![](https://file.jishuzhan.net/article/1712686290786324481/8816d6e4fceaef8f2ab0ea48ad02311d.webp)
按 Esc
,输入 :wq
,保存
![](https://file.jishuzhan.net/article/1712686290786324481/0fb0ce815f6fdbb46965a5dec21c18bd.webp)
Docker 中运行,gitlab 的地址应该为 http:192.168.101.3
sh
# 修改 http 和 ssh 配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 在 yml 修改
gitlab:
host: 192.168.101.3
port: 9980 # 端口改为9980
https: false
![](https://file.jishuzhan.net/article/1712686290786324481/c7bb0abe52354eda45cd6798ef3d3564.webp)
修改完成后重启 gitlab,之后退出容器
sh
# 重启 gitlab
gitlab-ctl restart
# 退出容器
exit
![](https://file.jishuzhan.net/article/1712686290786324481/1aa2ab2cf91baada49f266fb6d2b7f44.webp)
访问
浏览器访问(http://<你的 ip 地址>:9980)
![](https://file.jishuzhan.net/article/1712686290786324481/0082e8b202fc2532ea763be711038935.webp)
修改密码
sh
# 进入容器
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询 id 为 1 的用户,id 为 1 的用户是超级管理员
user = User.where(id:1).first
# 修改密码为 gitlab
user.password='gitlab@2023'
# 保存
user.save!
# 退出
exit
![](https://file.jishuzhan.net/article/1712686290786324481/1fb21021dc2992f02c7d0c502d778233.webp)
登录
登录 gitlab,用户名:root
,密码:gitlab@2023
(上面修改的值)
![](https://file.jishuzhan.net/article/1712686290786324481/486cbf58d29543348bf0ca5243f68a6d.webp)
相关操作
创建项目
右上角 new Project
![](https://file.jishuzhan.net/article/1712686290786324481/28993be9496daad18c00eee629870453.webp)
创建一个空白项目
![](https://file.jishuzhan.net/article/1712686290786324481/824445835a793758e2848027b91fa68e.webp)
填写项目名,相关描述,以及可见范围,点击 Create project
创建项目
![](https://file.jishuzhan.net/article/1712686290786324481/23bd0361abcc8f26618731f61eb59389.webp)
创建成功
![](https://file.jishuzhan.net/article/1712686290786324481/85bb5b5913b8b0c524114f9e6729e009.webp)
idea 连接 gitlab
idea 出 2023 版了,下面使用的是 idea 新 UI ,现在用 idea 连接 gitlab 完成代码的 push
![](https://file.jishuzhan.net/article/1712686290786324481/3617ca8c9f02f17290b838bfaf107ece.webp)
提交代码
![](https://file.jishuzhan.net/article/1712686290786324481/5ba5145275e373b099cd6d316746a3aa.webp)
连接 gitlab 远程仓库,点击项目右键,选择 Git,选择管理仓库
![](https://file.jishuzhan.net/article/1712686290786324481/6a01ebc06fcba9ed800e543f6e10a2b3.webp)
输入 url,点击 ok,url 在 gitlab 中获取
这里少了端口 9980,实际是http://192.168.101.3:9980/root/gitlab-test-demo.git
![](https://file.jishuzhan.net/article/1712686290786324481/8c22c09d28dcff6487538a506e0c355d.webp)
url 注意加上端口
![](https://file.jishuzhan.net/article/1712686290786324481/e5e3f6788a8afbb1031a78588c33590d.webp)
输入用户名和密码,登录
![](https://file.jishuzhan.net/article/1712686290786324481/6a27117bab493fe79fc362e6462ce9b0.webp)
连接成功
![](https://file.jishuzhan.net/article/1712686290786324481/66f2f69abc362a3e905ac648ab8620cb.webp)
点击本地 master 点击 push,也可以项目右键,找到 Git,选择 push
![](https://file.jishuzhan.net/article/1712686290786324481/5b4c3f6050b1e59748800efb3394a008.webp)
点击 push
![](https://file.jishuzhan.net/article/1712686290786324481/3c771d5aa49e5fb04352f95943b543b3.webp)
在 gitlab 可以查看项目内容,gitlab 默认是 main 的分支,刚才 push 的时候是 push 到 gitlab 的 master,所以先修改分支到 master,就可以看到项目代码
![](https://file.jishuzhan.net/article/1712686290786324481/8353c5feb4d3acbbe9c61856d0b6ca3a.webp)
同时,在 idea 中也可以查看远程仓库的提交情况
![](https://file.jishuzhan.net/article/1712686290786324481/d9e2655849bcffcd6840e1fb8aa8fb2a.webp)
最后
夜莺监控
推荐给大家一个云原生监控分析系统------夜莺监控
夜莺监控是一款国产、开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体。它由滴滴开发和开源,并于2022年5月11日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为CCF ODC成立后接受捐赠的第一个开源项目
夜莺监控的核心开发团队,也是 Open-Falcon 项目原核心研发人员。它支持多种数据采集方式,包括 Agent、SNMP、JMX 等。同时,它还支持多种告警方式,包括邮件、短信、微信等。夜莺监控提供了丰富的可视化图表和仪表盘,可以帮助用户更好地了解监控数据
安装
使用 docker-compose 部署,推荐 githubfast 进行克隆
sh
# 使用 github 克隆
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker
# 考虑到 github 访问可能不通,这里推荐使用 githubfast
git clone https://githubfast.com/ccfos/nightingale.git
# 进入项目中
cd nightingale/docker
# 启动 Docker Compose 配置文件中定义的所有服务
# up 用于创建并启动容器
# -d 有台运行
docker-compose up -d
成功之后出现
![](https://file.jishuzhan.net/article/1712686290786324481/4c0f48c906b679644efd505af5418090.webp)
访问
访问不通记得打开防火墙
访问地址:http://192.168.101.3:17000
账号:root
,密码:root.2020
Linux 打开端口相关命令
开启指定端口(要重新加载防火墙)
shell
firewall-cmd --zone=public --add-port=17000/tcp --permanent
重新加载防火墙
shell
firewall-cmd --reload
进入登录页面
![](https://file.jishuzhan.net/article/1712686290786324481/23fa5c2b7a6b330f4b81f15fe7868588.webp)
输入账号密码,进入后台
![](https://file.jishuzhan.net/article/1712686290786324481/0d46588d54b2d9f448c53663e19e64ae.webp)
其他
文中服务器使用的是虚拟机 CentOS7.9,搭建虚拟机的过程可以参考专栏
Linux 专栏(包括虚拟机安装,CentOS安装,安装 Docker,部署项目)
关于 gitee 仓库操作可查看文章