Gitlab 代码版本管理
安装
基于docker,版本13.6.3,Ubuntu18上测试通过
前提: * 硬件配置 4C-8G-100G * 安装 docker
# 服务存储路径
cd /data/gitlab
docker run --detach \
--hostname gitlab.test.com \
--publish 443:443 --publish 80:80 --publish 10022:22 \
--name gitlab \
--restart always \
-v /data/gitlab/ca/license_key.pub:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub \
-v /data/gitlab/ca/license.rb:/opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb \
--volume /data/gitlab/config:/etc/gitlab \
--volume /data/gitlab/logs:/var/log/gitlab \
--volume /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ee:13.6.3-ee.0
# 设置安全访问
iptables -I DOCKER -p tcp -m tcp --dport 22 -j DROP
iptables -I DOCKER -s 10.0.0.0/23 -p tcp -m tcp --dport 22 -j ACCEPT
/data/gitlab/ca/
下是https的证书
备份
# 调用内部命令备份数据,不含配置,生成{时间戳}_{gitlab版本}_gitlab_backup.tar
docker exec -t gitlab gitlab-backup create
# 备份配置,包括配置和https证书
zip gitlab_config.zip -r /data/gitlab/config/ /data/gitlab/ca/
恢复
在另一台主机上恢复
- gitlab_config.zip解药到对应目录
- gitlab_backup.tar复制到
/data/gitlab/data/backups
,文件权限开777 - 在容器内执行
# 暂停服务
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# gitlab-ctl status验证服务是否关闭
# 执行恢复,1643099038_2022_01_25_13.6.3-ee是之前备份的{时间戳}_{gitlab版本}
gitlab-backup restore BACKUP=1643099038_2022_01_25_13.6.3-ee
- 退出容器后,重启gitlab
- 验证服务恢复
docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true
- 验证2:本地hosts里指定新主机ip和域名,尝试访问
暴力版:
# 停docker,备份,直接把data打包,生成类似:gitback-2019-04-18.tar.gz
tar -zcvf /backup/data/gitback-${DATE}.tar.gz -C /data/
# 恢复,再重启docker
tar -xf gitback-2019-04-18.tar.gz -C /data/
docker-compose up -d