Gitlab 安装与配置
06 September 2017
目录:
1. 安装
1. 安装基础依赖
sudo apt-get install -y curl openssh-server ca-certificates
安装邮件服务,如果已有其他邮件服务器,可安装完成后配置。
sudo apt-get install -y postfix
2. 安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
官方源国内下载速度会比较慢,可以使用清华大学镜像站。
如果不想使用源,可手动安装,下载地址
dpkg -i gitlab-ce-XXX.deb
3. 配置和启动
sudo gitlab-ctl reconfigure
2. 自定义配置
如果需要更改端口,如下操作:
vim /etc/gitlab/gitlab.rb
# 8181 即为端口号
external_url 'http://localhost:8181'
3. 备份与还原
# backup
gitlab-rake gitlab:backup:create
# restore
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
gitlab-ctl stop
gitlab-rake gitlab:backup:restore BACKUP=${backupid}
# v13 使用 gitlab-backup
gitlab-backup restore BACKUP=${backupid}
⚠️ 注意: 还原与创建备份的gitlab版本需一致.
4. 常见问题
1. Error 502 (Whoops, GitLab is taking too much time to respond.)
- 剩余空闲内存太少, 内部运行出错
- 端口被占用, gitlab的
gitlab-workhorse
,unicorn
占用8080
2. 重置密码
sudo gitlab-rails console -e production
user = User.where(id: 1).first
user.password=${password}
user.password_confirmation=${password}
user.save!
quit
3. 运行reconfigure时报错
["usermod", "-s", "/bin/sh", "-d", "/var/opt/gitlab", "git"]
可能是git
用户的用户主目录错误,修改为/var/opt/gitlab
即可。
引用资料:查看
4. 升级后发现部分仓库文件和提交记录丢失
第一次恢复
尝试恢复备份文件,还好有八月份的备份文件,备份时版本为”13.0.6”,降低版本 sudo apt install gitlab-ce=13.0.6-ce.0
,恢复备份文件 gitlab-backup restore BACKUP=1597135522_2020_08_11_13.0.6
。经过一番折腾文件恢复了但是无法提交,仓库都变为只读了,😂,本次恢复以失败告终。
第二次恢复
经过上次尝试,猜想应该是元数据或者权限出现问题,但是不知道如何修复,恰好发现支持导入导出项目,可采用这种方式。另外也可通过 gitlab-rake
导入裸仓库,但是元数据不会导入,因此不采用这种方式。
- 初始化 gitlab
sudo gitlab-ctl stop
sudo apt purge gitlab-ce
sudo rm -rf /etc/gitlab
sudo rm -rf /opt/gitlab
sudo rm -rf /var/opt/gitlab
# 配置 EXTERNAL_URL 环境变量并安装
# sudo EXTERNAL_URL="http://gitlab.cofcool.net" apt install gitlab-ce
sudo apt install gitlab-ce
# 修改配置文件
sudo vim /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure
- 配置 docker-compose
sudo apt install docker.io docker-compose
# docker-compose.yml
tee docker-compose.yml <<EOF
web:
image: 'gitlab/gitlab-ce:13.0.6-ce.0'
restart: always
hostname: 'gitlab.cofcool.net'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.cofcool.net'
ports:
- '8181:80'
volumes:
- '/home/cofcool/gitlab/config:/etc/gitlab'
- '/home/cofcool/gitlab/logs:/var/log/gitlab'
- '/home/cofcool/gitlab/data:/var/opt/gitlab'
EOF
# 启动项目
docker-compose up -d
# 导入备份数据
docker exec -it web_1 gitlab-backup restore BACKUP=1597135522_2020_08_11_13.0.6
- 导入导出