gitlab遷移到docker並升級大版本到10.1.1和漢化

趙安家發表於2019-03-03

本文主要講 gitlab切換為docker版本,並且升級大版本(9.x-10.x)的較為快捷的方式

gitlab備份

檢視現有版本

sudo gitlab-rake gitlab:env:info

...
GitLab information
Version:    9.2.5
...複製程式碼

備份

在原伺服器執行

sudo gitlab-rake gitlab:backup:create RAILS_ENV=production

sudo sh -c `umask 0077; tar -cf /var/opt/gitlab/backups/$(date "+etc-gitlab-%s_%Y_%m_%d.tar") -C /etc/gitlab`複製程式碼

通過sudo ls -lah /var/opt/gitlab/backups | grep $(date "+%Y_%m_%d" ) 檢視

-rw-------  1 git  git  172M 11月  7 11:07 1510024070_2017_11_07_x.x.x_gitlab_backup.tar
-rw-------  1 root root 150K 11月  7 11:28 etc-gitlab-1510025309_2017_11_07.tar複製程式碼

移動到目標伺服器

使用scp將備份檔案複製到目標主機

username是使用者名稱
ip是來源主機ip

登陸目標主機,

sudo mkdir -p /data/gitlab/data/backups

scp username@ip:/var/opt/gitlab/backups/1510024070_2017_11_07_x.x.x_gitlab_backup.tar /data/gitlab/data/backups/1510024070_gitlab_backup.tar
scp username@ip:/var/opt/gitlab/backups/etc-gitlab-1510025309_2017_11_07.tar /data/gitlab/data/backups/

# 需要注意ssh的許可權問題,如果無許可權,要麼改配置,要麼就用winscp,ftp等進行上傳複製程式碼

gitlab恢復

docker-compose

version: `2`
services:
    gitlab:
      image: `gitlab/gitlab-ce:x.x.x-ce.0` # 將x.x.x-ce.0改成之前gitlab版本,否則無法恢復備份
      restart: unless-stopped
      ports:
        - `80:80`
        - `443:443`
        - `22:22`
      volumes:
        - config:/etc/gitlab
        - data:/var/opt/gitlab
        - logs:/var/log/gitlab
volumes:
    config:/data/gitlab/config
    data:/data/gitlab/data
    logs:/data/gitlab/log複製程式碼

docker-compose up -d

恢復資料

docker exec -it gitlab_gitlab_1 /bin/bash

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1510024070 # 1510024070_gitlab_backup.tar 的前段
tar -xf /var/opt/gitlab/backups/etc-gitlab-1510025309_2017_11_07.tar -C /複製程式碼

訪問以下http://ip/如果正常,則執行`docker-compose down`

gitlab升級和漢化

version: `2`
services:
    gitlab:
      image: `anjia0532/gitlab-ce-zh:10.1.1-ce.0` # 漢化的10.1.1版本
      restart: unless-stopped
      ports:
        - `80:80`
        - `443:443`
        - `22:22`
      volumes:
        - config:/etc/gitlab
        - data:/var/opt/gitlab
        - logs:/var/log/gitlab
volumes:
    config:/data/gitlab/config
    data:/data/gitlab/data
    logs:/data/gitlab/log複製程式碼

參考連線:

部落格 anjia.ml/2017/11/07/…
掘金 juejin.im/post/5a0170…
簡書 www.jianshu.com/p/3ac4bd837…

相關文章