【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備份與恢復、遷移與升級

gitlab 版本問題遷移 yum安裝遷移到docker中 (強烈推薦 - 全程 10分鐘搞定)

發佈了97 篇原創文章 · 獲贊 44 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章