docker部署GitLab配置本機自動備份、自動清理

Docker部署GitLab

1.gitlab鏡像拉取

# gitlab-ce爲穩定版本,後面不填寫版本則默認pull最新latest版本
$ docker pull gitlab/gitlab-ce

2.運行gitlab鏡像

docker run -d  -p 4003:443 -p 4001:80 -p 4002:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

3.配置
按上面的方式,gitlab容器運行沒問題,但在gitlab上創建項目的時候,生成項目的URL訪問地址是按容器的hostname來生成的,也就是容器的id。作爲gitlab服務器,我們需要一個固定的URL訪問地址,於是需要配置gitlab.rb(宿主機路徑:/home/gitlab/config/gitlab.rb)。

# gitlab.rb文件內容默認全是註釋
$ vim /home/gitlab/config/gitlab.rb
# 配置http協議所使用的訪問地址,不能加端口,加端口無法訪問,這裏使用默認80
external_url 'http://39.104.91.250'

# 配置ssh協議所使用的訪問地址和端口
gitlab_rails['gitlab_ssh_host'] = '39.104.91.250'
gitlab_rails['gitlab_shell_ssh_port'] = 4002 # 此端口是run時22端口映射的4002端口
# 重啓gitlab容器
$ docker restart gitlab

此時項目的倉庫地址就變了。如果ssh端口地址不是默認的22,就會加上ssh:// 協議頭
打開瀏覽器輸入ip:端口號即可訪問。這裏爲http://39.104.91.250:4001

自動備份

1.創建備份腳本文件auto_backup.sh

#! /bin/bash
docker exec gitlab gitlab-rake gitlab:backup:create

2./etc/crontab定時任務配置文件:

0 2 * * * root /home/gitlab/data/backups/auto_backup.sh

0 2 * * *每天凌晨兩點

自動清理備份

1.創建備份腳本文件auto_delete.sh

find /home/gitlab/data/backups/ -mtime +7 -type f -name "*.tar" -exec rm -rf {} \;

尋找並刪除/home/gitlab/data/backups/目錄下內容修改時間(mtime)爲7天以前的tar文件(-type f),並刪除(rm -rf)

2./etc/crontab定時任務配置文件:

* 22 * * 6 root /home/gitlab/data/backups/auto_delete.sh

* 22 * * 6每週六夜晚22點

參考資料:
docker下gitlab安裝配置使用
GitLab的自動備份、清理備份與恢復
docker部署的GitLab代碼自動備份
linux下查找指定文件夾/刪除指定文件夾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章