gitlab相关记录——筑梦之路

gitlab特点

  • 完整的代码托管功能:支持Git版本控制系统,提供强大的代码仓库管理
  • 集成的CI/CD:内置完善的持续集成和持续交付流水线
  • 问题跟踪与协作:支持问题创建、讨论、优先级设置和任务分配
  • 代码审查机制:便于团队进行质量管控、知识共享和模块讨论
  • 安全扫描功能:提供静态代码分析、漏洞扫描和容器安全检查
  • 扩展集成能力:支持与Jira、Slack、Kubernetes等主流工具的对接

版本区别

GitLab提供GitLab-JH、GitLab-CE和GitLab-EE三个版本,主要区别如下:

GitLab-JH与GitLab-CE的核心差异体现在版本来源、功能和服务支持方面:

  1. GitLab-CE(Community Edition社区版)
  • 面向全球用户提供的免费开源版本
  • 提供基础的代码托管和版本控制功能
  • 适合个人开发者或小型团队使用
  • 不包含企业级服务和技术支持
  1. GitLab-JH(极狐版)
  • 由国内极狐公司基于GitLab-CE/EE二次开发
  • 针对中国市场进行了本地化定制
    • 提供中文文档支持
    • 优化本地用户体验
  • 分为两个版本:
    • 基础版(免费)
    • 专业版(订阅收费)
  • 代码仓库部署在中国境内

版本查询提示:可通过 https://packages.gitlab.cn/ 查看GitLab-JH的版本号及镜像tag信息。

部署方式

  • Omnibus 本地部署
  • Docker 容器化部署
  • Kubernetes 集群部署

部署需求

存储需求

Omnibus GitLab 安装需要约 2.5 GB 存储空间。建议采用 LVM 部署以便后续扩容,并优先选择 7200 转 HDD 或 SSD 以保证性能。

CPU 配置

CPU 需求与用户规模及工作负载相关,影响因素包括:

  • 用户活跃度
  • 自动化程度
  • 镜像大小
  • 变更频率

推荐最低配置:

  • 4 核:支持 500 名用户
  • 8 核:支持 1000 名用户

内存配置

内存需求同样取决于用户规模和工作负载,影响因素与 CPU 相同。

推荐最低配置:

  • 4GB RAM:支持 500 名用户
  • 8GB RAM:支持 1000 名用户

补充建议:

  • 服务器需配置至少 2GB swap 空间(即使内存充足)
  • 将内核 swappiness 设为较低值(如 10),以平衡 RAM 和 swap 的使用

数据库支持

仅支持 PostgreSQL,可选用内置(Omnibus 集成)或外部数据库。

更多部署要求详见:GitLab 官方文档

本地安装

bash 复制代码
yum install -y curl policycoreutils-python3 openssh-server perl

curl -L get.gitlab.cn | bash

sudo EXTERNAL_URL="http://gitlab.codemiracle.com" yum install -y gitlab-jh

# 自签证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/C=CN/ST=ZheJiang/L=HangZhou/O=codemiracle/OU=Xianghy/CN=gitlab.codemiracle.com"

# 配置证书
vim /etc/gitlab/gitlab.rb
......
external_url "https://gitlab.codemiracle.com"               #指定HTTPS访问
gitlab_rails['gitlab_ssh_host'] = 'gitlab.codemiracle.com'  #使用ssh访问gitlab的域名,ssh://git@gitlab.codemiracle.com:/xxx/project.git
letsencrypt['enable'] = false                           #关闭letsencrypt
nginx['redirect_http_to_https'] = true                  #指定HTTP重定向为HTTPS
nginx['client_max_body_size'] = '1024m'                 #gitlab-ce自带Nginx的最大包大小
gitlab_rails['time_zone'] = 'Asia/Shanghai'             #配置时区
gitlab_rails['initial_root_password'] = 'admin123'    #重置为指定密码
......

gitlab-ctl reconfigure                 #重载配置

参考文档:https://docs.gitlab.cn/docs/omnibus/settings/ssl/index.html

Docker安装

bash 复制代码
# 简单示例

export GITLAB_HOME=/home/gitlab

docker run --detach \
  --hostname gitlab.codemiracle.com \
  --publish 443:443 --publish 80:80 --publish 2202:22 \
  --name gitlab \
  --restart unless-stopped \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 2048m \
  gitlab/gitlab-ce:latest
  
docker logs -f gitlab                 #观察部署过程

推荐使用 GitLab-CE 社区版,也可以选择官方最新版 Docker 镜像 registry.gitlab.cn/omnibus/gitlab-jh:latest。

如需查看其他可用镜像标签,请参考:https://hub.docker.com/r/gitlab/gitlab-ce/tags/

K8S部署

bash 复制代码
# 先决条件
https://docs.gitlab.cn/docs/charts/installation/tools/

helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm search repo gitlab                          #查看gitlab chart包
helm show chart gitlab/gitlab                    #查看对应gitlab chart的详情

要安装国内GitLab-JH版,可通过以下命令添加Helm仓库源:

bash 复制代码
helm repo add gitlab-jh https://charts.gitlab.cn

参考资料:

https://www.cnblogs.com/adblogs/p/18627778

https://docs.gitlab.cn/docs/charts/charts/

bash 复制代码
helm upgrade --install mygitlab gitlab/gitlab --create-namespace --namespace gitlab -f myvaules.yaml
相关推荐
悟能不能悟13 小时前
.gitlab-ci.yml这个文件有什么作用
ci/cd·gitlab
极小狐2 天前
极狐GitLab 18.7 版本发布,带来了改进的 GitLab Duo 分析仪表盘与密钥有效性校验、支持为聊天和智能体选择 AI 模型,以及更多新功能!
人工智能·gitlab
一叶飘零_sweeeet2 天前
解决 GitLab 响应超时:清理日志 + 重启服务一步到位
gitlab
张小凡vip4 天前
数据挖掘(五) -----JupyterHub 使用gitlab的账号体系进行认证
人工智能·数据挖掘·gitlab
沛沛老爹5 天前
Web开发者转型AI:Agent Skills团队知识共享机制实战——从GitLab到AI技能库
java·人工智能·gitlab·rag·企业转型·web转ai
Apex Predator5 天前
gitlab备份与恢复
运维·gitlab
一念一花一世界5 天前
Arbess项目实战 - 基于GitLab搭建.net项目自动化流水线
ci/cd·gitlab·.net·arbess
techzhi5 天前
Apifox CLI + GitLab CI:接口自动化测试实施记录
java·ci/cd·kubernetes·gitlab·yapi·运维开发·fastapi
kida_yuan5 天前
【Linux】在树莓派上搭建自建 Git 服务(基于 GitLab)- 实战笔记与运维清单
运维·gitlab·树莓派