当前位置: 首页 > news >正文

如何迁移gitlab到另一台服务器

前言

因为公司要迁移gitlab到新的合适的服务器,因此需要对gitlab做一次整体迁移,在参考了官方文档和自己实践后,得出了如下的解决步骤,仅供参考,细节可能因每个人需求而有所差异

各软件版本

软件名称版本
gitlab18.2-jh
服务器aws ec2

参考文档

gitlab官方参考文档:https://gitlab.cn/docs/jh/administration/backup_restore

部署文件

因为我是采用docker compose文件部署的,docker-compose.yaml文件如下,一些敏感信息已去除,大家根据实际情况自行填写或修改

services:
  web:
    image: 'registry.gitlab.cn/omnibus/gitlab-jh:18.2.1-jh.0'
    restart: always
    pull_policy: always
    hostname: ''
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url ''
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '80:80'
      - '443:443'
      - '2224:22'
      - '8929:8929'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
      - './path/to/cert:/etc/gitlab/ssl'
    shm_size: '256m'

具体步骤 

旧服务器上执行

查看gitlab容器名

docker ps

 

 执行备份操作

docker exec -t gitlab-web-1 gitlab-backup create

等待备份完成 

备份文件一般默认放在容器内的/var/opt/gitlab/backups目录下,因为我将/var/opt/gitlab映射到宿主机的./data目录,因此直接在宿主机上进入~/data/backups来查看

温馨提示 :建议不要更改名字,因为后续的恢复对文件名格式有要求!!!

将备份文件转移到新服务器

方法很多,上传到oss,或者通过其他任意方式转移均可,因为我的服务器是aws ec2,所以我这里选择将其上传到aws s3

注意

  1. 此命令只适用aws s3,阿里云或者其他oss服务请参考对应的官方文档
  2. 如果使用aws s3,将your-bucket-name改成自己的bucket name
aws s3 cp 1753761475_2025_07_29_18.2.1-jh_gitlab_backup.tar s3://your-bucket-name/1753761475_2025_07_29_18.2.1-jh_gitlab_backup.tar

等待上传完成

新服务器上执行 

启动新gitlab

使用旧的docker compose文件启动或者默认启动一个均可,我这里使用旧的docker compose文件来启动

注意,如果使用旧docker compose文件来启动,需要将容器卷对应的目录创建好,同时将旧gitlab的config目录下的内容先行拷贝过来,要不然会启动失败

等待四五分钟,新gitlab容器启动成功,并且健康检查状态为healthy

将备份文件转移过来 

因为我之前是传到s3,因此我从s3上拉取下来,为了方便,我直接在backups目录下执行这个操作

aws s3 cp s3://your-bucket-name/1753761475_2025_07_29_18.2.1-jh_gitlab_backup.tar .

等待拉取完成

执行恢复文件

注意:gitlab会自动补全文件后缀名_gitlab_backup.tar,因此文件原名是1753761475_2025_07_29_18.2.1-jh_gitlab_backup.tar,但是命令中只输入1753761475_2025_07_29_18.2.1-jh

docker exec -it gitlab-web-1 gitlab-backup restore BACKUP=1753761475_2025_07_29_18.2.1-jh

 等待解析完成后进入引导

注意,恢复会格式化新gitlab的数据库,不过作为即将迁移的新gitlab,本来就是要被覆盖的,这个并不需要担心

输入yes后继续

继续输入yes

迁移完成

进入新服务器的地址,可以查看到账户和仓库等信息都已经迁移过去了

http://www.dtcms.com/a/304270.html

相关文章:

  • Makefile 快速入门指南
  • LangChain和LangGraph 里面的 `create_react_agent`有什么不同
  • 机器学习—逻辑回归
  • VitePress学习-自定义主题
  • 使用 Django REST Framework 构建强大的 API
  • 在依赖关系正确的情况下,执行 mvn install 提示找不到软件包
  • Python Day17 面向对象 及例题分析
  • Apache Ignite 的分布式队列(IgniteQueue)和分布式集合(IgniteSet)的介绍
  • 集成电路学习:什么是Wi-Fi无线保真度
  • 机器学习sklearn:泰坦尼克幸存预测(决策树、网格搜索找最佳参数)
  • 永磁同步电机无速度算法--静态补偿电压模型Harnefors观测器
  • 泛微E9 引入高版本spring导致webservices接口报错
  • vue2 使用liveplayer加载视频
  • 【初识数据结构】CS61B中的基数排序
  • 彻底清理ArcGIS 10.2残留的步骤
  • 【自制组件库】从零到一实现属于自己的 Vue3 组件库!!!
  • 堆的理论知识
  • uniapp如何封装uni.request 全局使用
  • qt webengine播放视频
  • VS+Qt中使用QCustomPlot绘制曲线标签(附源码)
  • 002 TrafficGenerator 类详解
  • FCN语义分割算法原理与实战
  • 八股训练营 40 天心得:一场结束,也是一场新的开始
  • 力扣热题100--------240.搜索二维矩阵
  • LeetCode热题100——46. 全排列
  • 研电赛-基于GD32的纳型无人机AI追踪系统1
  • vue相关的拖拉拽官网
  • minio安装 windows系统
  • C语言第六章函数递归
  • Linux文件归档和备份