本文主要讲 gitlab切换为docker版本,并且升级大版本(9.x-10.x)的较为快捷的方式
gitlab备份
查看现有版本
sudo gitlab-rake gitlab:env:info...GitLab informationVersion: 9.2.5...复制代码
备份
在原服务器运行
sudo gitlab-rake gitlab:backup:create RAILS_ENV=productionsudo sh -c 'umask 0077; tar -cf /var/opt/gitlab/backups/$(date "+etc-gitlab-%s_%Y_%m_%d.tar") -C /etc/gitlab'复制代码
通过sudo ls -lah /var/opt/gitlab/backups | grep $(date "+%Y_%m_%d" )
查看
-rw------- 1 git git 172M 11月 7 11:07 1510024070_2017_11_07_x.x.x_gitlab_backup.tar-rw------- 1 root root 150K 11月 7 11:28 etc-gitlab-1510025309_2017_11_07.tar复制代码
移动到目标服务器
使用scp
将备份文件复制到目标主机
username
是用户名
ip
是来源主机ip 登陆目标主机,
sudo mkdir -p /data/gitlab/data/backupsscp username@ip:/var/opt/gitlab/backups/1510024070_2017_11_07_x.x.x_gitlab_backup.tar /data/gitlab/data/backups/1510024070_gitlab_backup.tarscp username@ip:/var/opt/gitlab/backups/etc-gitlab-1510025309_2017_11_07.tar /data/gitlab/data/backups/# 需要注意ssh的权限问题,如果无权限,要么改配置,要么就用winscp,ftp等进行上传复制代码
gitlab恢复
docker-compose
version: '2'services: gitlab: image: 'gitlab/gitlab-ce:x.x.x-ce.0' # 将x.x.x-ce.0改成之前gitlab版本,否则无法恢复备份 restart: unless-stopped ports: - '80:80' - '443:443' - '22:22' volumes: - config:/etc/gitlab - data:/var/opt/gitlab - logs:/var/log/gitlabvolumes: config:/data/gitlab/config data:/data/gitlab/data logs:/data/gitlab/log复制代码
docker-compose up -d
恢复数据
docker exec -it gitlab_gitlab_1 /bin/bashgitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1510024070 # 1510024070_gitlab_backup.tar 的前段tar -xf /var/opt/gitlab/backups/etc-gitlab-1510025309_2017_11_07.tar -C /复制代码
访问以下 down`
gitlab升级和汉化
version: '2'services: gitlab: image: 'anjia0532/gitlab-ce-zh:10.1.1-ce.0' # 汉化的10.1.1版本 restart: unless-stopped ports: - '80:80' - '443:443' - '22:22' volumes: - config:/etc/gitlab - data:/var/opt/gitlab - logs:/var/log/gitlabvolumes: config:/data/gitlab/config data:/data/gitlab/data logs:/data/gitlab/log复制代码
参考连接:
博客
掘金 简书