gitlab安装部署
·
1、docker安装
# 更新软件库索引
sudo apt update -y
# 安装一些必要的软件包
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加Docker软件库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新软件库索引
sudo apt update
# 安装Docker CE
sudo apt install docker-ce -y
# 启动Docker并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
# 验证Docker安装
sudo docker --version
# (若要让非root用户可以运行Docker命令)可以将用户添加到docker组:
sudo usermod -aG docker ${USER}
# 编辑docker配置文件(添加代理镜像或修改文件存储位置)
sudo vi /etc/docker/daemon.json
添加如下内容
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
# 重新加载配置docker
sudo systemctl daemon-reload
# 重启
sudo systemctl restart docker
2、安装容器
# 拉取指定版本镜像
sudo docker pull gitlab/gitlab-ce:17.11.1-ce.0
#安装镜像
sudo docker run -d \
-p 443:443 \
-p 8822:22 \
-p 8890:80 \
--name gitlab17.11.1\
--restart always \
--shm-size=120g \
-v /home/gitlab17.11.1/config:/etc/gitlab \
-v /home/gitlab17.11.1/logs:/var/log/gitlab \
-v /home/gitlab17.11.1/data:/var/opt/gitlab \
gitlab/gitlab-ce:17.11.1-ce.0
在安装完成后,若页面经常出现500、502错误,经排查,是因为在安装时容器中dev/shm磁盘内存不足导致,所以设置–shm-size=120g进行扩容
docker exec -it gitlab17.11.1 /bin/bash
# 修改用户密码
# 进入GitLab Rails 控制台
sudo gitlab-rails console -e production
# 查询所有用户
User.all.each { |user| puts "Username: #{user.username}, Email: #{user.email}" }
# 查找 root 用户(通常 id 是 1)
user = User.find_by(username: 'root')
# 或者通过 id 查找
# user = User.find(1)
# 方式一:直接修改密码(会要求确认)
user.password = '您的新密码'
user.password_confirmation = '您的新密码'
# 方式二:如果想跳过密码复杂性要求(如果密码太简单报错可以用这个)
# user.password = '您的新密码'
# user.password_confirmation = '您的新密码'
# user.password_automatically_set = false # 这行很重要
# 保存更改
user.save!
# 退出控制台
exit
3、gitlab数据库定时备份
#进入容器
docker exec -it gitlab17.11.1 /bin/bash
cd ~
vi gitlab_back.sh
在文件中添加以下内容
#!/bin/bash
rm /var/opt/gitlab/backups/*
gitlab-rake gitlab:backup:create
#修改文件权限
chmod 777 gitlab_back.sh
#安装cron
apt update
apt install -y cron
crontab -e
#添加以下内容
59 23 * * * /root/gitlab_back.sh #每天 23:59点执行备份任务
#启动 cron
/etc/init.d/cron start
#查看cron状态
/etc/init.d/cron status
4、gitlab数据备份与恢复
4.1、备份
#进入容器
docker exec -it gitlab17.11.1 /bin/bash
#执行备份命令,默认将备份文件保存至/var/opt/gitlab/backups/
gitlab-rake gitlab:backup:create
#备份时提示gitlab.rb 和 gitlab-secrets.json 文件包含敏感数据,且这些文件未包含在当前的备份中。手动对它们进行备份。
# 1、exit退出容器,将备份文件拉取到宿主机:
exit
sudo mkdir backups
sudo docker cp gitlab:/var/opt/gitlab/backups/1671245938_2022_12_17_14.6.1_gitlab_backup.tar ~/backups/
# 2、将json和rb文件也复制到备份目录下:
sudo docker cp gitlab:/etc/gitlab/gitlab-secrets.json ~/backups/
sudo docker cp gitlab:/etc/gitlab/gitlab.rb ~/backups/
4.2、恢复
#进入容器停止 GitLab 相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop puma
# 启动新容器,拷贝文件(注意文件权限)
sudo docker cp ~/backups/1671245938_2022_12_17_14.6.1_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
sudo docker cp ~/backups/gitlab-secrets.json gitlab:/etc/gitlab/
sudo docker cp ~backups/gitlab.rb gitlab:/etc/gitlab/
#进入容器,进入备份目录
sudo docker exec -it gitlab /bin/bash
cd /var/opt/gitlab/backups
#修改文件权限
chmod 777 文件名
#执行如下命令,在恢复过程中,GitLab 会提示你确认一些操作,按照提示输入 yes 继续即可。
gitlab-rake gitlab:backup:restore BACKUP=1671245938_2022_12_17_14.6.1
#重新加载配置
gitlab-ctl reconfigure
# 重启
gitlab-ctl restart
5、gitlab升级
#按照上面的备份步骤对当前版本的数据进行备份
#确保当前通用配置无阻碍升级问题
gitlab-rake gitlab:check
#停止当前的版本
docker stop 当前运行的镜像
gitlab升级不能直接升级到最新版,需根据官方提供的升级路径进行逐步升级,地址:
https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?current=14.2.3&distro=centos&edition=ce
注意升级后,需等待数据迁移完毕,才可继续升级
gitlab登录超级管理员账号,在管理区域-监控-后台迁移 可查看后台迁移进程



#后台迁移
检查待处理的非批处理后台迁移:
gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining'
gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.queued.count'
检查失败的后台迁移
对于 14.10 及更高版本的 GitLab:
gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.with_status(:failed).count'
对于 14.0-14.9 版本
gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.failed.count'
更多推荐
所有评论(0)