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下查找指定文件夹/删除指定文件夹

你可能感兴趣的:(运维)