gitlab-ce迁移到docker与版本升级
服务器是aws的,之前的gitlab是源码安装,升级很不方便,现在迁移到docker,版本从11.7.5升级到12.2.5
一、源数据备份
- 登录线上gitlab
- 执行命令
$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
备份后数据在/home/git/gitlab/tmp/backups/下,名字为 日期_版本_gitlab_backup.tar
注:/home/git为挂载的硬盘
- 将需要的文件拷贝到/home/git/gitlab下
$ sudo mkdir /home/git/gitlab/gitlab_file
$ sudo cp /etc/nginx/conf.d/default.conf /home/git/gitlab/gitlab_file nginx配置文件
$ sudo cp /etc/nginx/conf.d/gitlab-pages.conf /home/git/gitlab/gitlab_file pages配置文件
$ sudo cp /etc/nginx/fullchain.pem /home/git/gitlab/gitlab_file nginx密钥文件
$ sudo cp /etc/nginx/privkey.pem /home/git/gitlab/gitlab_file nginx密钥文件
注:根据需求,gitlab要开启pages,所以拷贝pages的配置文件;nginx要启用ssl
- 复制gitlab数据盘(/home/git) 卷—>创建快照 快照—>创建卷
二、恢复前准备
- 新启动的gitlab服务器系统为ubuntu18.04,将新建的卷挂载到服务器上
- 2.创建存放相应文件及存放数据的的目录、挂载数据盘
$ mkdir /home/ubuntu/gitlab_file
$ sudo mkdir /data
$ 将数据盘挂载到/data下,可将其他文件删除,只保留备份数据文件,/data作为存放数据的盘。
- 将需要的文件拷贝到gitlab_file中
$ sudo cp /opt/gitlab/gitlab_file/default.conf /home/ubuntu/gitlab_file nginx配置文件
$ sudo cp /opt/gitlab/gitlab_file/gitlab-pages.conf /home/ubuntu/gitlab_file pages配置文件
$ sudo cp /opt/gitlab/gitlab_file/fullchain.pem /home/ubuntu/gitlab_file nginx密钥文件
$ sudo cp /opt/gitlab/gitlab_file/privkey.pem /home/ubuntu/gitlab_file nginx密钥文件
- Docker安装
各系统安装docker 链接 https://zhuanlan.zhihu.com/p/54147784
将ubuntu用户加入docker组
$ sudo gpasswd -a ubuntu docker
- Docker-compose安装
(1) 运行以下命令下载最新版本的 docker-compose:
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
(2) 更改二进制文件的权限,使其能够运行:
$ sudo chmod +x /usr/local/bin/docker-compose
(3) 测试安装
$ docker-compose --version
- 更改本机sshd服务端口为23
注:需要将gitlab容器22端口映射到本机22端口
三、数据恢复
- 启动Postgresql
(1) 拉取数据库镜像
$ docker pull sameersbn/postgresql:10-2
(2) 创建数据目录
$ mkdir -p /data/postgresql/data
(3) 启动数据库
$ bash pg.sh
$ cat pg.sh
docker run --rm --name postgresql -d \
-e 'DB_NAME=gitlabhq_production' \
-e 'DB_USER=gitlab' \
-e 'DB_PASS=123456' \
-e 'DB_EXTENSION=pg_trgm' \
-v /data/postgresql/data:/var/lib/postgresql \
sameersbn/postgresql:10-2
- 启动redis
(1) 拉取redis镜像
$ docker pull sameersbn/redis:4.0.9-3
(2) 创建redis数据目录
$ mkdir -p /data/redis/data
(3) 启动redis
$ bash redis.sh
$ cat redis.sh
docker run --rm --name redis -d \
-v /data/redis/data:/var/lib/redis \
sameersbn/redis:4.0.9-3
- gitlab
(1) 拉取gitlab镜像
$ docker pull sameersbn/gitlab:11.7.5 旧版本
$ docker pull sameersbn/gitlab:11.11.0 中间版本
$ docker pull sameersbn/gitlab:12.2.5 新版本
注:从11.7.5升级到12.2.5版本需要先升级到