安装gitlab
1 采用docker方式安装gitlab,系统为ubuntu24.04,gitlab版本为13.7.2-ce
1.1 安装docker
1.1.1 安装添加 Docker 仓库所需的前置软件包
sudo apt-get install ca-certificates curl gnupg lsb-release
1.1.2 添加GPG 密钥:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
1.1.3 添加docker软件源:
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
1.1.4 更新软件包列表,以便系统识别新添加的 Docker 仓库:
sudo apt update
1.1.5 安装 Docker以及相关组件
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
查看docker版本
docker -v
1.2 安装docker-compose
项目地址:https://github.com/docker/compose/releases
1.2.1 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1.2.2 增加执行权限
sudo chmod +x /usr/local/bin/docker-compose
1.2.3 创建软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
注:github国内访问很慢,上面操作不建议,可以提前下载好docker-compose文件然后上传文件到/usr/local/bin,然后增加执行权限
sudo chmod +x /usr/local/bin/docker-compose
查看docker-compose版本
docker-compose –v
1.3 安装gitlab
1.3.1 新建文件夹,创建docker-compose.yml
sudo mkdir –p /docker/gitlab
cd /docker/gitlab
sudo vi docker-compose.yml
粘贴以下内容
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ce:13.7.2-ce.0'
container_name: gitlab
restart: always
hostname: '172.28.11.105'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://172.28.11.105'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '80:80'
- '443:443'
- '2222:22'
volumes:
- '/docker/gitlab/config:/etc/gitlab'
- '/docker/gitlab/logs:/var/log/gitlab'
- '/docker/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
因为从2024年6月份开始docker被墙了,所以要配置下仓库地址,否则无法pull镜像文件
1.3.2 配置镜像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.rainbond.cc"]
}
EOF
sudo systemctl daemon-reload //重载配置文件
sudo systemctl restart docker //重启docker
1.3.3 启动gitlab容器
docker-compose up -d
1.3.4 关闭防火墙或者放开端口
sudo ufw disable //关闭防火墙
sudo ufw allow 80 //放开80端口
sudo ufw reload //重载防火墙配置
2 linux安装包安装
2.1 更新系统包
sudo apt-get update
sudo apt upgrade
2.2 添加 GitLab 的 GPG 密钥
企业版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
社区版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
2.3 安装
到官网复制命令https://packages.gitlab.com/gitlab/gitlab-ce
sudo apt-get install gitlab-ce=17.1.1-ce.0
2.4 修改配置
vi /etc/gitlab/gitlab.rb
修改external_url 'http://ip'
2.5 重新加载配置
sudo gitlab-ctl reconfigure
2.6 查看root密码
cat /etc/gitlab/initial_root_password
2.7 访问gitlab
浏览器输入IP
查看gitlab版本命令
gitlab-rake gitlab:env:info
3 备份与恢复
3.1 文件备份
配置文件备份:备份etc/gitlab下的gitlab.rb和gitlab-sercrets.json
其余文件备份:上传的文件例如头像图片在/var/opt/gitlab/gitlab-rails/uploads下,需要备份
3.2 Docker环境下安装的gitlab的备份
sudo docker exec -t <container name> gitlab-backup create
文件生成在 data/backup下
3.3 Docker环境下安装的gitlab的恢复
前期工作,将备份文件放置data/backup目录下,将备份的gitlab.rb和gitlab-sercrets.json放入config目录下,其余文件放置/var/opt/gitlab/gitlab-rails/uploads下
3.3.1 进入容器
sudo docker exec -it gitlab /bin/bash
3.3.2 停止服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
3.3.3 恢复备份
gitlab-backup restore BACKUP=1721694275_2024_07_23_13.7.2
中途报错
解决办法如下: 修改postgresql配置
vim /var/opt/gitlab/postgresql/data/postgresql.conf
listen_addresses = '*' #修改为 *
vim /var/opt/gitlab/postgresql/data/pg_hba.conf # 最下面新增两行,将原本的local那一栏注释
local all all trust
host all all 127.0.0.1/32 trust
gitlab-ctl restart # 重启服务
su - gitlab-psql # 修改gitlab账号为超级用户
/opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
psql (12.4)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q
3.3.4 重启gitlab
docker restart gitlab
3.4 非docker环境下的gitlab的备份
3.4.1 使用如下命令进行GitLab的备份:
执行命令(GitLab 12.1之后版本):gitlab-backup create
执行命令(GitLab 12.1及之前版本):gitlab-rake gitlab:backup:create
备份文件地址:/var/opt/gitlab/backups/
3.5 非docker环境下的gitlab的恢复
3.5.1 停止GitLab的数据库相关进程
gitlab-ctl stop sidekiq
gitlab-ctl stop puma
3.5.2 验证GitLab服务的状态
gitlab-ctl status
3.5.3 执行恢复
chmod 777 1721694275_2024_07_23_13.7.2_gitlab_backup.tar //增加执行权限
sudo gitlab-backup restore BACKUP=1721694275_2024_07_23_13.7.2
3.5.4 重启gitlab
gitlab-ctl restart
4 更新
Gitlab升级需要遵循官方的升级路径进行升级,不可以跳过中间版本直接升级
升级路径查看:Upgrade Path (gitlab-com.gitlab.io)
13.7.2-13.8.8-13.12.15-14.0.12-14.3.6-14.9.5-14.10.5-15.0.5-15.4.6-15.11.13-16.3.7-16.7.8-16.11.6-17.2.0
4.1 docker方式升级
4.1.1 停止容器
docker-compose stop
4.1.2 修改docker-compose.yml
将image后面的版本号更改
4.1.3 重建
docker-compose up -d