GitLab-JH 本地化版本使用指南及常见问题解决方案
一、概述
GitLab-JH (GitLab Community Edition for China) 是 GitLab 针对中国市场推出的本地化版本,提供了更适合国内用户的功能和服务。本文将为您详细介绍 GitLab-JH 的安装、配置、使用以及常见问题的解决方案。
二、安装与配置
2.1 系统要求
- CPU: 至少 4 核
- 内存: 至少 8 GB RAM
- 存储: 至少 50 GB 可用空间
- 操作系统: Ubuntu 22.04 LTS, CentOS 7/8, RHEL 7/8
2.2 安装方式
2.2.1 Docker 安装 (推荐)
# 拉取 GitLab-JH 镜像
docker pull registry.gitlab.cn/omnibus/gitlab-jh:latest
# 创建 GitLab 数据目录
mkdir -p /srv/gitlab/{config,logs,data}
# 运行 GitLab-JH 容器
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab-jh \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
registry.gitlab.cn/omnibus/gitlab-jh:latest2.2.2 包管理器安装
# Ubuntu/Debian
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-jh/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-jh
# CentOS/RHEL
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-jh/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install gitlab-jh2.3 基本配置
2.3.1 访问 GitLab
安装完成后,通过浏览器访问 http://gitlab.example.com,首次登录需要设置 root 密码。
2.3.2 邮件配置
编辑 /etc/gitlab/gitlab.rb 文件:
# 邮件服务器设置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
# 发件人设置
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab-JH'重新配置 GitLab:
gitlab-ctl reconfigure三、核心功能使用
3.1 项目管理
3.1.1 创建项目
- 点击页面顶部的 "New project" 按钮
- 选择项目类型(空白项目、导入项目等)
- 填写项目名称和描述
- 设置项目可见性(私有、内部、公开)
- 点击 "Create project" 完成创建
3.1.2 分支管理
# 创建新分支
git checkout -b feature/new-feature
# 推送分支到远程
git push -u origin feature/new-feature
# 合并分支(在 GitLab 界面操作)
1. 进入项目 -> Merge Requests -> New merge request
2. 选择源分支和目标分支
3. 填写合并请求信息
4. 点击 "Submit merge request"3.2 CI/CD 配置
3.2.1 基本 CI/CD 配置
在项目根目录创建 .gitlab-ci.yml 文件:
# .gitlab-ci.yml
stages:
- build
- test
- deploy
build:
stage: build
script:
- echo "Building the application..."
- npm install
- npm run build
test:
stage: test
script:
- echo "Running tests..."
- npm run test
deploy:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r dist/* user@server:/var/www/html
only:
- main3.2.2 定时任务
# 每天凌晨 2 点运行备份
backup:
script:
- echo "Running backup..."
- gitlab-backup create
only:
- schedules
when: manual3.3 代码审查
3.3.1 提交评论
- 进入项目 -> Repository -> Commits
- 点击任意提交记录
- 选择要评论的代码行
- 输入评论内容并提交
3.3.2 合并请求审查
- 进入项目 -> Merge Requests
- 选择要审查的合并请求
- 在 "Changes" 标签页查看代码变更
- 在 "Discussion" 标签页添加评论
- 点击 "Approve" 或 "Request changes"
四、常见问题与解决方案
4.1 安装问题
问题:安装过程中出现 "insufficient memory" 错误
解决方案:
- 增加系统内存至至少 8 GB
- 或修改 GitLab 配置文件
/etc/gitlab/gitlab.rb,减少内存使用:postgresql['shared_buffers'] = '128MB' unicorn['worker_memory_limit_min'] = '100 * 1 << 20' unicorn['worker_memory_limit_max'] = '250 * 1 << 20' - 重新配置:
gitlab-ctl reconfigure
问题:无法访问 GitLab 页面
解决方案:
- 检查网络连接和防火墙设置:
# Ubuntu sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 22/tcp # CentOS/RHEL sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload - 检查 GitLab 服务状态:
gitlab-ctl status - 查看日志:
gitlab-ctl tail
4.2 使用问题
问题:CI/CD 管道执行失败
解决方案:
- 查看管道日志:进入项目 -> CI/CD -> Pipelines,点击失败的管道查看详细日志
- 检查
.gitlab-ci.yml文件语法:gitlab-ci-lint - 确保 Runner 已注册并处于活跃状态:进入 Admin -> Runners
问题:无法推送代码
解决方案:
- 检查 SSH 密钥是否已添加到 GitLab:进入个人设置 -> SSH Keys
- 检查远程仓库地址是否正确:
git remote -v - 检查网络连接:
ping gitlab.example.com
4.3 性能问题
问题:GitLab 页面加载缓慢
解决方案:
- 增加系统资源(CPU、内存)
- 启用 Redis 缓存:修改
/etc/gitlab/gitlab.rbredis['enable'] = true gitlab_rails['redis_host'] = '127.0.0.1' gitlab_rails['redis_port'] = 6379 - 配置 Nginx 反向代理加速
- 定期清理日志和旧数据:
gitlab-ctl cleanup
五、最佳实践
-
权限管理:
- 使用组(Group)管理多个项目
- 为不同角色设置适当的权限(Guest、Reporter、Developer、Maintainer、Owner)
- 定期审计权限设置
-
备份策略:
- 定期执行全量备份:
gitlab-backup create - 将备份文件存储在异地
- 定期测试备份恢复:
gitlab-backup restore
- 定期执行全量备份:
-
CI/CD 优化:
- 使用缓存减少构建时间:
cache: paths: - node_modules/ - 并行执行测试任务:
test: parallel: 3 script: - npm run test - 使用 Docker 镜像加速构建过程
- 使用缓存减少构建时间:
-
监控与日志:
- 启用 GitLab 监控:进入 Admin -> Monitoring
- 配置日志收集工具(如 ELK Stack)
- 定期查看系统性能指标
六、总结
GitLab-JH 本地化版本提供了完整的 DevOps 解决方案,适合国内团队使用。通过本文的指南,您应该能够顺利安装、配置和使用 GitLab-JH,并解决常见问题。如需更多帮助,请参考 GitLab-JH 官方文档或社区支持。
文档版本: 1.0
更新时间: 2025-11-18
适用版本: GitLab-JH 16.0+
(此内容由 AI 辅助生成,仅供参考)