【Git】gitlab数据迁移 yum安装迁移到docker容器中 (强烈推荐 - 全程 10分钟搞定)

因为前两天本地开发服务器接二连三出了问题,我们担心gitlab和数据库的数据丢失,发生灾难性的问题。

借此机会,将三台Centos6.5的系统都升级到Centos7.x,9012年都要结束啦,怎么能还不推动一下团队成员对Docker的使用率。

迁移源gitlab 迁移目的gitlab 版本
yum安装 docker 运行gitlab 11.9.8

迁移步骤

1、备份旧gitlab数据

gitlab-rake gitlab:backup:create

yum安装默认会保存在 /var/opt/gitlab/backups ,实际情况可以使用find查找下文件路径

2、在新服务器上使用docker搭建相同版本的gitlab

version: '3'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:11.9.8-ce.0'
    restart: always
    container_name: compose-gitlab-ce
    hostname: 'gitlab.example.com'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        # 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
        # 比如下面的电子邮件的配置:
        # gitlab_rails['smtp_enable'] = true
        # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
        # gitlab_rails['smtp_port'] = 465
        # gitlab_rails['smtp_user_name'] = "[email protected]"
        # gitlab_rails['smtp_password'] = "password"
        # gitlab_rails['smtp_authentication'] = "login"
        # gitlab_rails['smtp_enable_starttls_auto'] = true
        # gitlab_rails['smtp_tls'] = true
        # gitlab_rails['gitlab_email_from'] = '[email protected]'
    ports:
      - '80:80'
      - '443:443'
      - '2222:22'
    volumes:
      - ./config:/etc/gitlab
      - ./data:/var/opt/gitlab
      - ./logs:/var/log/gitlab

docker-compose.yml文件的同级目录创建三个目录:

mkdir config
mkdir data
mkdir logs

执行 docker-compose up -d 启动该容器,启动的时间会比较长 耐心等待 5分钟左右!!

3、拷贝文件到新服务器的docker中

docker cp ./1575650870_2019_12_06_11.9.8_gitlab_backup.tar compose-gitlab-ce:/var/opt/gitlab/backups

4、重建数据库

tips 1575650870_2019_12_06_11.9.8_gitlab_backup.tar 这个文件是第一步备份的时候生成的。

docker exec -it compose-gitlab-ce /bin/bash
chmod 777 -R /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:restore BACKUP=1575650870_2019_12_06_11.9.8

在这里插入图片描述
耐心等待一小会儿…
在这里插入图片描述
迁移完成!!! 重启 gitlab 并验证

gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true

在这里插入图片描述
大功告成 !!!

注意事项

gitlab版本必须一致,否则迁移失败在这里插入图片描述

解决 22 端口冲突的问题

  • 修改宿主的 SSH 端口
    具体操作细节请参考:【CentOS】CentOS7增加或修改SSH端口号的方法
  • 修改容器的 SSH 端口 (本文采用的是此方法)

    修改容器的端口映射关系,比如将 -p 22:22 改为 -p 2222:22,这样 GitLab 的 SSH 服务端口将是 2222。
    这样做会让使用 GitLab 的 SSH 克隆、提交代码有些障碍。这种情况要改变用户使用 Git 的链接方式。

    # 要从之前的:
    git clone [email protected]:myuser/awesome-project.git
    
    # 改为明确使用 ssh:// 的 URL 方式。
    git clone ssh://[email protected]:2222/myuser/awesome-project.git
    

参考

twang2218/gitlab-ce-zh overview

Gitlab备份与恢复、迁移与升级

扫描二维码关注公众号,回复: 10047397 查看本文章

gitlab 版本问题迁移 yum安装迁移到docker中 (强烈推荐 - 全程 10分钟搞定)

发布了105 篇原创文章 · 获赞 46 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/AV_woaijava/article/details/103559235