概述
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

修改配置
进入容器内部
sh
docker exec -it gitlab /bin/bash

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

按 Esc
,输入 :wq
,保存

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

修改完成后重启 gitlab,之后退出容器
sh
# 重启 gitlab
gitlab-ctl restart
# 退出容器
exit

访问
浏览器访问(http://<你的 ip 地址>:9980)

修改密码
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

登录
登录 gitlab,用户名:root
,密码:gitlab@2023
(上面修改的值)

相关操作
创建项目
右上角 new Project

创建一个空白项目

填写项目名,相关描述,以及可见范围,点击 Create project
创建项目

创建成功

idea 连接 gitlab
idea 出 2023 版了,下面使用的是 idea 新 UI ,现在用 idea 连接 gitlab 完成代码的 push

提交代码

连接 gitlab 远程仓库,点击项目右键,选择 Git,选择管理仓库

输入 url,点击 ok,url 在 gitlab 中获取
这里少了端口 9980,实际是http://192.168.101.3:9980/root/gitlab-test-demo.git

url 注意加上端口

输入用户名和密码,登录

连接成功

点击本地 master 点击 push,也可以项目右键,找到 Git,选择 push

点击 push

在 gitlab 可以查看项目内容,gitlab 默认是 main 的分支,刚才 push 的时候是 push 到 gitlab 的 master,所以先修改分支到 master,就可以看到项目代码

同时,在 idea 中也可以查看远程仓库的提交情况

最后
夜莺监控
推荐给大家一个云原生监控分析系统------夜莺监控
夜莺监控是一款国产、开源云原生监控分析系统,采用 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
成功之后出现

访问
访问不通记得打开防火墙
访问地址:http://192.168.101.3:17000
账号:root
,密码:root.2020
Linux 打开端口相关命令
开启指定端口(要重新加载防火墙)
shell
firewall-cmd --zone=public --add-port=17000/tcp --permanent
重新加载防火墙
shell
firewall-cmd --reload
进入登录页面

输入账号密码,进入后台

其他
文中服务器使用的是虚拟机 CentOS7.9,搭建虚拟机的过程可以参考专栏
Linux 专栏(包括虚拟机安装,CentOS安装,安装 Docker,部署项目)
关于 gitee 仓库操作可查看文章