本文采用docker容器化部署
获取镜像
docker pull gitlab/gitlab-ce
- 启动容器
docker run -d --publish 8443:443 --publish 8080:80 --publish 8022:22 --name gitlab --restart always gitlab/gitlab-ce
进入容器修改配置
docker exec -it gitlab bash
vi /etc/gitlab/gitlab.rb
将下面配置粘贴/etc/gitlab/gitlab.rb
中
external_url 'http://192.168.0.235' # 这里的ip为宿主机ip或则域名,后期用户点击克隆项目的时候会显示
gitlab_rails['gitlab_ssh_host'] = '192.168.0.235'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
重启gitlab服务
gitlab-ctl restart
访问http://127.0.0.1:8080/
- 查看初始密码
cat /etc/gitlab/initial_root_password # 只有gitlab.rb中未配置gitlab_rails['initial_root_password'],密码未被修改时有效
注意:我看好多文章说提示修改密码,我的并没有不知道为什么,下面我们手动修改
修改root密码
- 进入gitlab控制台
gitlab-rails console
- 获取root用户,修改密码保存,退出
u=User.find(1)
u.password='12345678'
u.save!
exit
- 重启gitlab服务
gitlab-ctl restart
备份
- gitlab默认的备份保存路径为
/var/opt/gitlab/backups
,可通过gitlab.rb修改
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
-
执行备份命令
ls gitlab-backup create # GitLab 12.1之后版本,GitLab 12.1及之前版本使用gitlab-rake gitlab:backup:create
-
手动备份gitlab.rb和gitlab-secrets.json
定时备份
- 安装crontab
修改为阿里云镜像源deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
,提高下载速度
安装vi /etc/apt/sources.list # 修改apt-get镜像源
apt-get update # 更新软件源列表 apt-get install cron
- 设置定时
crontab -e 0 20 * * * gitlab-backup create >> /var/log/gitlab/crontab.out 2>&1 & # 每天晚上8点执行备份 service cron reload
恢复备份
-
停止相关数据连接服务
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
-
恢复gitlab仓库
cd /var/opt/gitlab/backups gitlab-backup restore BACKUP=1659084022_2022_07_29_15.2.0
执行上面命令,按两次回车即可,或执行下面命令则无需确认
gitlab-backup restore force=yes BACKUP=1659084022_2022_07_29_15.2.0
-
手动恢复gitlab.rb和gitlab-secrets.json,重新加载配置,重启
cp gitlab.rb /etc/gitlab/ cp gitlab-secrets.json /etc/gitlab/ gitlab-ctl reconfigure gitlab-ctl restart
项目迁移
此方案比较通用,缺点就是需要一个个的迁移
git clone --mirror ssh://[email protected]:8022/demo/demo.git demo
cd demo
git push --mirror ssh://[email protected]:8022/demo/demo.git //将本地克隆推送到新服务器
git remote set-url origin ssh://[email protected]:8022/demo/demo.git //将本地远程仓库地址改为新地址
常用命令
docker stop gitlab # 容器外停止,这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字
docker restart gitlab # 容器外重启
docker exec -it gitlab bash # 进入容器命令行
vi /etc/gitlab/gitlab.rb # 编辑gitlab配置文件
gitlab-ctl reconfigure # 容器中应用配置,让修改后的配置生效
gitlab-ctl start # 开启
gitlab-ctl restart # 容器中重启服务
gitlab-ctl stop # 关闭
gitlab-ctl status # 查看状态
4 汉化gitlab
- 方式一:有人直接使用非官方到民间镜像(hub.docker.com)然后部署使用,比较麻烦,不推荐
- 方式二:直接修改本地化设置,根据个人喜好设置自己喜欢的语言
登陆后点击头像,弹出下拉框,然后点击Preferences
选项
在新页面中,点击Preference
选项,然后向下滚到,可以看到Localization
选项,然后点击Language选项,选择Chinese 简体中文
即可修改语言
效果如下: