GitLab的升级与数据迁移(Docker方式)

本文记录了在CentOS系统中,如何使用Docker将GitLab从13.0.3版本逐步升级至13.7.4的过程,包括数据备份、恢复和升级操作。涉及停服、拉取新版本Docker镜像、创建新容器、验证数据恢复及升级后版本检查等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


《GitLab的升级与数据迁移(Docker方式)》
原文章地址:http://www.CrazyDeveloper007.com/gitlab-update-data-migration/

PS: 笔者之前用的操作系统是Ubuntu Server 18.04.3 LTS ,后来被公司后台工程师鄙视,因为他们用CentOS,说什么他们都在用CentOS,Ubuntu太不专业了(后经了解他们觉得Ubuntu只有花哨的图形界面,有不带图形界面的Server版好吧!和他们统一吧,毕竟我之前仅是个客户端程序员,听大佬的话,没有错)

由于之前笔者的Ubuntu系统中运行着安装版的GitLab-ce 13.0.3,写这篇文章时,GitLab官方已经升级到了13.7.4版本,索性就把系统换成CentOS 7,然后把GitLab版本由13.0.3升级至13.7.4,说干就干!

1 备份原13.0.3版本的GitLab数据

1.1 运行命令备份数据

PS:默认会在/var/opt/gitlab/backups/目录下生成备份文件

sudo gitlab-rake gitlab:backup:create

图1 执行完备份操作后

1.2 拷贝备份的文件到本地

PS:笔者使用的是MobaXterm工具,一个集XFTP、XShell于一身的运维神器

直接在MobaXterm工具中进入文件所在目录/var/opt/gitlab/backups/,将备份的文件拷贝至本地磁盘备用。待重装完系统恢复数据时使用。

图2 通过MobaXterm工具拷贝GitLab备份文件到本地

2 按官方升级策略逐步升级并完成数据迁移

PS:[主版本].[子版本].[修正版本],当前我们的版本是13.0.3,也就是主版本号13、子版本号0、修正版本号3。

我们将版本先升级至当前主版本、子版本对应的最高的修正版本,笔者查询到13.0.14为当前13.0.x最高修正版本。

而后,如果我们升级的目标版本没有跨主版本,则直接进行下一个版本的升级,如从13.0.14–>13.7.4这样。

我们的升级路线为:13.0.3 --> 13.0.14 --> 13.7.4

2.1 准备工作

PS:此时笔者的操作系统已经由Ubutnu 18.04 切换为了 CentOS 7.8,刚刚老系统下备份的GitLab数据文件已经在上一步中存放在笔者本地磁盘中了。

2.1.1 新机创建GitLab相关目录

PS:CentOS 7系统重装,这里就不进行说明了,笔者假设现在操作的电脑是需要恢复原GitLab数据的。

创建/var/opt/gitlab/backups目录

sudo mkdir -p /var/opt/gitlab/backups

2.1.2 将备份文件拷贝至指定目录

打开Mob

### 如何在 Docker升级 GitLab #### 准备工作 为了确保顺利升级,在执行任何操作之前,建议备份现有数据。这可以通过停止当前容器并将卷中的数据复制到安全位置来完成[^1]。 ```bash docker stop gitlab_container_name docker cp gitlab_container_name:/var/opt/gitlab /path/to/safe/location/ ``` #### 停止旧版本的服务 在开始升级过程前,先要停止正在运行的老版本GitLab实例: ```bash docker stop gitlab_container_name docker rm gitlab_container_name ``` #### 下载新版本镜像 接着拉取最新的官方GitLab Docker镜像,这里假设目标是最新的稳定版: ```bash docker pull gitlab/gitlab-ce:latest ``` #### 启动新版服务并迁移数据 利用先前保存的数据重新启动GitLab容器,并指定挂载点以便恢复原有配置和数据库状态: ```bash docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22: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 \ gitlab/gitlab-ce:latest ``` 上述命令会读取`/srv/gitlab/config`目录下的设置文件来进行初始化;如果这是首次安装,则该路径下应为空或仅含默认配置。 #### 验证更新成功 最后一步是验证升级后的GitLab是否正常运作。打开浏览器访问设定好的主机名(本例中为`gitlab.example.com`),确认界面显示无误且功能完好即可认为升级顺利完成。 #### 清理过期资源 一旦确认一切运转良好,可以选择删除不再使用的旧版本镜像以释放空间: ```bash docker image prune -f ``` 此命令将移除所有悬空(dangling)镜像——即那些未被任何容器引用的中间层图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值