Fork me on GitHub
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.)

  1. 剩余空闲内存太少, 内部运行出错
  2. 端口被占用, 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 导入裸仓库,但是元数据不会导入,因此不采用这种方式。

  1. 初始化 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
  1. 配置 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
  1. 导入导出