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

如何迁移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.xdnf.cn/news/16685.html

相关文章:

  • 图像认知与OpenCV | Day5:图像预处理(4)
  • C++20协程实战:高效网络库、手机终端、多媒体开发开发指南
  • Javaweb - 13 - AJAX
  • Qt|槽函数耗时操作阻塞主界面问题
  • Chrome 提示 “此扩展程序不再受支持”(MacOS/Windows)
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析六
  • C++异常捕获:为何推荐按引用(by reference)捕获?
  • 华为昇腾芯片:多模态模型国产化的硬核突破
  • Ext JS极速项目之 Coworkee
  • ETH 交易流程深度技术详解
  • Linux进程概念(五)进程地址空间
  • 凸优化:凸函数的一些常用性质
  • 低成本嵌入式Linux开发方案:通过配置文件实现参数设置
  • 基于黑马教程——微服务架构解析(二):雪崩防护+分布式事务
  • 如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine
  • JavaScript 回调函数讲解_callback
  • 力扣7:整数反转
  • golang--通道和锁
  • 做了一款小而美的本地校验器
  • jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器
  • 使用Docker在Rocky Linux 9.5上在线部署LangFlow
  • 【力扣热题100】哈希——两数之和
  • 基于深度学习的医学图像分析:使用3D CNN实现肿瘤检测
  • 智慧工地系统:科技赋能建筑新未来
  • 采用黑翅鸢优化算法BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量回归预测,多输入单输出(Matlab)
  • nifi 访问Kerberos的kafka集群
  • 【行测】常识判断1
  • 图解系统的学习笔记--硬件结构
  • 【安卓笔记】OOM与内存优化
  • Sentinel 不同层面的流控保护