docker搭建gitlab

1、编写docker-compose.yml
找一个文件夹放docker-compose.yml,gitlab的映射文件最好放在数据盘
这里我放在vim /data/gitlab/ 下

gitlab:
  image: 'gitlab/gitlab-ce:14.1.5-ce.0' ##镜像
  restart: always  ##设置重启
  hostname: 'explore.com' ##设置你的host,用于nginx反向代理使用
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - '/data/gitlab/config:/etc/gitlab'        ##配置文件夹
    - '/data/gitlab/logs:/var/log/gitlab'      ##日志文件及
    - '/data/gitlab/data:/var/opt/gitlab'      ##数据文件夹

2、docker启动gitlab

docker-compose up -d 

3、备份操作

docker-compose -f /data/gitlab/docker-compose.yml exec -T web gitlab-backup create

4、还原备份

##备份文件放在/data/gitlab/data/backups下,脚本会找最新的备份文件还原

#!/bin/bash

set -e

echo "rsync begin - $(date)" > /data/time_cost.log

echo "prepare restore file begin - $(date)" >> /data/time_cost.log

FILE_NAME=$(ls -lt /data/gitlab/backups/ | grep '_gitlab_backup.tar' | head -n 1 | awk '{print $9}')
BACKUP_NAME=$( echo $FILE_NAME | sed -e "s/_gitlab_backup.tar//g")

if [ ! -f "/data/gitlab/data/backups/$FILE_NAME" ]; then
  echo "/data/gitlab/data/backups/$FILE_NAME does not exist."
  \cp -rf /data/git_backup/backups/${FILE_NAME} /data/gitlab/data/backups/
fi

echo "update permissions begin - $(date)" >> /data/time_cost.log

/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web update-permissions
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web chown -R git.git /var/opt/gitlab/backups

echo "restore begin - $(date)" >> /data/time_cost.log

/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-ctl stop unicorn
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-ctl stop sidekiq
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-rake gitlab:backup:restore BACKUP=${BACKUP_NAME} force=yes
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-ctl reconfigure
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-ctl restart
/usr/local/bin/docker-compose -f /data/docker-gitlab/docker-compose.yml exec -T web gitlab-rake gitlab:check SANITIZE=true

echo "remove backup tar begin - $(date)" >> /data/time_cost.log

#rm -rf /data/gitlab/data/backups/*.tar

echo "end - $(date)" >> /data/time_cost.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值