Docker搭建gitlab-ce並還原數據庫


場景:原來的gitlab是使用ubuntu自帶的apt安裝的,已經使用了半年多,最后在阿里雲的輕量級服務器上終於有些抗不住了,一天死好多次,連網站都進不去。

決定將gitlab遷移到內網,在物理機上運行。

剛好,原來通過apt安裝的方式不好作雲部署,我們組未來可能要上k8s,所以這里直接用docker來接盤gitlab,也是為了學習實踐docker,docker也更加方便管理。

第一步:備份

數據是最重要的,遷移一定要萬分小心,不要弄丟了代碼庫!

如果是apt安裝的gitlab可以直接使用如下命令進行備份

gitlab-rake gitlab:backup:create

一般來說如果是apt安裝的gitlab可以在/var/opt/gitlab/backups/下找到生成的backup文件,保存好這個文件,一會恢復用。除了這個備份文件外,另外建議保存data下兩個文件:gitlab.rbgitlab-secrets.json,其中gitlab.rb也可能是/etc下的,我一般配置etc下的。

第二步:Docker安裝gitlab

直接使用docker-compose安裝:

新建一個文件夾docker,新建文件docker-compose.yml,編輯:

version: '2'
services:
   gitlab:
        image: 'gitlab/gitlab-ce:13.2.2-ce.0'
        restart: unless-stopped
        container_name: 'gitlab'
        hostname: 'w2.iict.cn'
        ports:
            - '81:80'
            - '444:443'
            - '23:22'
        volumes:
            - /docker/gitlab/config:/etc/gitlab
            - /docker/gitlab/data:/var/opt/gitlab
            - /docker/gitlab/logs:/var/log/gitlab

在這里,將docker內目錄gitlab映射到docker外物理機上:/docker/gitlab/。

所以我們要把第一步中備份的三個文件分別歸位,放在/docker/gitlab/data下的對應位置。

並且為了避免沖突,這里把docker內端口映射到了物理機分別:“+1”

使用 docker-compose up 運行起來

第三步:還原數據庫

這一步必須在docker gitlab啟動的情況下!

docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=1608272828_2020_12_18_13.2.2 --trace

這里BACKUP變量后面的是備份文件去除了后綴

啟動

docker-compose up
# 或
docker-compose start

gitlab啟動較慢,清等待到現實頁面。

一些配置

所有的配置都在 /docker/gitlab/config 下,主要是gitlab.rb文件,external_url要配置成和訪問地址,反向代理,外網一樣的網址,這在git clone時會用到

關於升級

如果直接在gitlab-compose使用latest版本,而這個latest版本比你的backup版本新的話,是會報一個版本不匹配錯誤的,這個時候應該遵循backup版本,先使用對應的版本的gitlab。

等到全部安裝完成,並且正常啟動gitlab后,就可以修改docker-compose下的gitlab版本為latest,當然版本跨越不能太大,大版本之間不兼容的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM