本地gitlab迁移并升级至docker运行

Posted ly2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本地gitlab迁移并升级至docker运行相关的知识,希望对你有一定的参考价值。

目的:

本地linux中gitlab11.4.3-ee.0 ----迁移并升级---->docker+ gitlab12.5.9-ee.0

升级路径:

首先使docker中的gitlab和本地linux为相同版本,然后再一步步升级至12.5.9

升级路径:11.4.3 -> 11.11.8 -> 12.0.9 -> 12.5.9

官方参考链接:

官方docker安装、升级gitlab官方文档:

https://docs.gitlab.com/omnibus/docker/README.html#run-the-image

官方docker下载gitlab地址:

https://hub.docker.com/r/gitlab/gitlab-ee/tags?page=1&name=11.4.3

升级参考链接

https://blog.csdn.net/bpqdwo/article/details/93204128

https://www.cnblogs.com/inxworld/p/11782545.html

环境:

linux版本:CentOS Linux release 7.6.1810 (Core)

docker版本:Docker version 19.03.5, build 633a0ea

老主机:IP为192.168.3.5------->gitlab为11.4.3-ee版本

新主机:IP为192.168.3.103

思路参考:

1创建备份文件

在老主机中操作:

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1581338904_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1581338904_是备份创建的日期生成完后,/var/opt/gitlab/backups目录创建一个名称类似为1581338904_gitlab_backup.tar的压缩包

2、最重要的一步

复制 /etc/gitlab目录下的

gitlab.rb

gitlab-secrets.json 

这两个文件,到新的服务器gitlab上的对应目录下

gitlab完整仓库迁移至新gitlab仓库,确保新Gitlab服务器和老Gitlab服务器版本相同

用scp命令内网复制压缩文件过来,或者上传也行

scp -r 1581338904_2020_02_10_11.4.3-ee_gitlab_backup.tar root@192.168.3.103:/gitlab

上传到新的gitlab仓库对应的/var/opt/gitlab/backups目录下

#如果是docker部署的服务,推荐用挂载目录的方式去做

volumes:

    # gitlab配置

    - /etc/gitlab:/etc/gitlab

    # 挂载宿主机目录

    - /var/opt/gitlab:/var/opt/gitlab

这个后边映射的docker容器的目录可以在容器启动后,去容器内自己查找看看

第一步,将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题

chmod 1581338904_2020_02_10_11.4.3-ee_gitlab_backup.tar 

第二步,执行命令停止相关数据连接服务

# 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

第三步,执行命令从备份文件中恢复Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

敲完命令后,出现第一个交互页面,

root@ubuntu4146:/var/opt/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1581338904_2020_02_10_11.4.3-ee

Unpacking backup ... done

Before restoring the database we recommend removing all existing

tables to avoid future upgrade problems. Be aware that if you have

custom tables in the GitLab database these tables and all data will be

removed.

Do you want to continue (yes/no)?

输入yes

会出现几个这样的输入框,都输入yes

最后

第四步,启动Gitlab

gitlab-ctl start

详细步骤

迁移gitlab到docker上运行

使dockergitlab和本地gitlab为同一版本

①   用scp命令内网复制压缩文件过来,或者上传也行(在192.168.3.35上操作)

scp -r 1581338904_2020_02_10_11.4.3-ee_gitlab_backup.tar root@192.168.3.103:/gitlab

技术图片

 

②   将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题(在192.168.3.103上操作)

chmod 1581338904_2020_02_10_11.4.3-ee_gitlab_backup.tar

③   执行命令从备份文件中恢复(在192.168.3.103上操作)

gitlabgitlab-rake gitlab:backup:restore BACKUP

④   获取gitlab-ee:11.4.3版本(在192.168.3.103上操作)

docker pull gitlab/gitlab-ee:11.4.3-ee.0

⑤   运行gitlab-ee:11.4.3镜像(在192.168.3.103上操作)

首先移动gitlab.rbgitlab-secrets.json/srv/gitlab/config

sudo docker run --detach

--publish 8443:443 --publish 80:80 --publish 222:22

--name gitlab

--restart always

--volume /srv/gitlab/config:/etc/gitlab

--volume /srv/gitlab/logs:/var/log/gitlab

--volume /srv/gitlab/data:/var/opt/gitlab

--volume /gitlab:/var/opt/gitlab/backups

gitlab/gitlab-ee:11.4.3-ee.0

用docker ps命令查看运行的镜像

 技术图片

⑥   进入容器内部

docker exec -it 44a4fd38d084 /bin/bash

gitlab-ctl start

 查看gitlab的版本:

root@7a2163c095cf:/# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

------------------------以上步骤成功迁移gitlab至docker且版本为11.4.3------------------------

在docker上做gitlab升级

升级路径:11.4.3 -> 11.11.8 -> 12.0.9 -> 12.5.9

基本过程是:

1. docker exec -it gitlab /bin/bash --------> 进入dokcer 容器 gitlab 

2. gitlab-ctl stop    ---------------------------->停止全部服务

3. exit       -------------------------------------->退出容器

4. docker stop gitlab ------------------------> 停止dokcer容器gitlab

5. docker rm gitlab -------------------------->删除容器

6. docker run --detach

--publish 8443:443 --publish 80:80 --publish 222:22

--name gitlab

--restart always

--volume /srv/gitlab/config:/etc/gitlab

--volume /srv/gitlab/logs:/var/log/gitlab

--volume /srv/gitlab/data:/var/opt/gitlab

--volume /gitlab:/var/opt/gitlab/backups

gitlab/gitlab-ee:11.4.3-ee.0   ------------------->注意修改这个位置

6.漫长等待升级完成以后,登陆网站(192.168.3.103)看看基本功能是否正常。

7.循环1-6步骤,直到最新版本

最终结果:

 技术图片

 访问确认:

 技术图片

 

以上是关于本地gitlab迁移并升级至docker运行的主要内容,如果未能解决你的问题,请参考以下文章

将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器

填坑记GitLab 服务器迁移和升级

gitlab 搭建 备份 升级 迁移恢复

Kubernetes中gitlab的一次迁移

Kubernetes中gitlab的一次迁移

Kubernetes中gitlab的一次迁移