公司现在开始实行 DevOps 的开发模式,代码托管采用了 GitLab 搭建私有代码仓库,本文记录了 GitLab 的安装、汉化及常见错误处理。
1. 安装GitLab
准备工作
1 | sudo yum install curl policycoreutils openssh-server openssh-clients |
配置镜像源地址
1 | curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash |
安装完毕后执行注册启动
1 | sudo gitlab-ctl reconfigure |
修改访问 IP 和 端口号
vim /etc/gitlab/gitlab.rb
- 修改
external_url
,比如http://localhost:9080
配置邮件发送服务
vim /etc/gitlab/gitlab.rb
修改与 email 有关的配置项
1 | ## 邮箱基础配置 |
2. 汉化 GitLab
注意:汉化之前是必须设置root密码登录过的,否则有些必须文件没有生成,汉化不成功。
汉化包版本选择:version ≤ 8.8、version > 8.8
查看安装的 GitLab 的版本
1
2cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.3.2停止 GitLab 服务:
gitlab-ctl stop
git clone https://gitlab.com/xhang/gitlab.git
汉化操作:
1
2cd gitlab
yes|cp -rf ../gitlab/* /opt/gitlab/embedded/service/gitlab-rails/重新启动查看效果:
gitlab-ctl start
3. 日常 GitLab 管理
1 | gitlab-ctl start|stop|status|restart |
4. 常见错误解决
在卸载 GitLab 然后再次安装执行 sudo gitlab-ctl reconfigure 的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行。
- 按住
CTRL+C
强制结束; - 运行:
sudo systemctl restart gitlab-runsvdir
- 再次执行:
sudo gitlab-ctl reconfigure
gitlab-ctl reconfigure 之后,访问浏览器出现如下错误:Whoops, GitLab is taking too much time to respond.
使用
gitlab-ctl tail
查看完整的gitlab-ctl reconfigure
日志我出现这个的错误是因为日志中出现了端口占用
1
2
3==> /var/log/gitlab/unicorn/unicorn_stderr.log <==
Errno::EADDRINUSE: Address already in use - bind(2) for 127.0.0.1:8080vim /etc/gitlab/gitlab.rb
去修改unicorn
的 url 和 port1
2unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8888再次执行:
sudo gitlab-ctl reconfigure
有时也可能是超时引起的这个错误,
vim /etc/gitlab/gitlab.rb
去修改webhook_timeout
1
2
3
4## unicorn 连接超时
unicorn['worker_timeout'] = 90
## WebHook 超时时间
gitlab_rails['webhook_timeout'] = 60
5. 配置 push 操作时发送 diff 信息给指定人邮箱
创建用户的时候,邮箱保证正确。
User Settings --> Profile --> Main Settings --> email / public email 里是你的邮箱
User Settings --> Emails 保证第二步里显示的 email在这里是 verified 状态
User Settings --> Notifications 里 email保证正确,选择 level 为第一个,并勾选接收通知如下图
创建一个项目
Settings --> Integrations --> email on push,具体如下图
❤️enjoy it ~~