当前位置: 首页 > news >正文

docker 搭建gitlab 恢复和备份

最近一直在折腾gitlab 代码管理系统
采用docker搭建 镜像网址 https://hub.docker.com/
技术交流 http://idea.coderyj.com/

1.因为我要恢复的版本是12.0.9的所有我就下载了docker-ce的12.0.9的镜像

  • 1.下载镜像
docker pull gitlab/gitlab-ce:12.0.9-ce.0
  • 2.安装
docker run -itd -p 9980:80 -p 9922:22 -u root -v $PWD/data/log:/var/log/gitlab -v $PWD/data/opt:/var/opt/gitlab -v $PWD/data/etc:/etc/gitlab --privileged=true --name=gitlab --restart always gitlab/gitlab-ce:12.0.9-ce.0
# 放在/data/gitlab 目录下面了 里面的子目录它会自己创建
docker run -itd -p 9980:80 -p 9922:22 -u root -v /data/gitlab/log:/var/log/gitlab -v /data/gitlab/opt:/var/opt/gitlab -v /data/gitlab/etc:/etc/gitlab --privileged=true --name=gitlab --restart always gitlab/gitlab-ce:12.0.9-ce.0
  • 3.漫长等待大概3-5分钟后就能访问了
  • 查看状态
docker exec gitlab gitlab-ctl status

在这里插入图片描述

  • 4.访问 输入 ip:9980 就OK了

2.恢复代码以及用户-准备3个文件 恢复的版本必须和安装的版本保持一致

在这里插入图片描述

1.数据库+代码文件 gitlab_backup.tar
2.配置文件 gitlab.rb
3.数据库秘钥,用于解密 gitlab-secrets.json

  • 1.将 gitlab._backup.tar 文件上传到 /data/gitlab/opt/backups 目录下
  • 2.将 gitlab.rb, gitlab-secrets.json 文件上传到 /data/gitlab/etc 目录下
  • 3.开始恢复
# 进入容器
docker exec -it  gitlab   /bin/bash
# 关闭数据库连接
gitlab-ctl stop unicorn 
gitlab-ctl stop sidekiq
# 进入备份目录 `/var/opt/gitlab/backups/`
cd /var/opt/gitlab/backups/
# 开始恢复 注意文件名不要 后面的 gitlab这些
gitlab-rake gitlab:backup:restore BACKUP=1703008988_2023_12_20_12.0.9
  • 1.漫长等待 中间输入 yes 覆盖就OK了
  • 2.修改配置文件
cd /etc/gitlab
vi gitlab.rb
# 将  external_url 'http://0.0.0.0:80
external_url 'http://0.0.0.0:80'

在这里插入图片描述

  • 4.恢复完成

3.备份

# 进入容器
docker exec -it  gitlab   /bin/bash
# 备份命令
gitlab-rake gitlab:backup:create
# 备份目录
docker 内部目录 /var/opt/gitlab/backups
宿主机目录  /data/gitlab/opt/backups
# 复制docker内部文件到宿主机目录 这一步是挂在在宿主机上可以不操作
docker container  cp  容器:/var/opt/gitlab/backups/备份文件    /var/opt/gitlab/backups/

备份的时候不会备份 gitlab.rb, gitlab-secrets.json 需要我们手动保存

  • 备份脚本
#! /bin/sh### BEGIN INIT INFO
# Provides:          gitlab_back.sh
# Required-start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the sql_back.sh daemon
# Description:       starts sql_back.sh using start-stop-daemon
### END INIT INFO# 遇到错误就退出
set -e
docker exec  gitlab  /bin/bash  -c "gitlab-rake gitlab:backup:create"path=/data/gitlab/opt/backups#删除100天之前的文件
find $path -name "*.tar"   -mtime +30 -exec rm  {} \;

4.一键脚本 - 备用

#安装docker
yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce*
systemctl start docker
#下载gitlab images
docker pull gitlab/gitlab-ce:12.0.9-ce.0
#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#启动
#/usr/local/docker/gitlab  在此路径下放置docker-compose.yml
cd  /usr/local/docker/gitlab
docker-compose up -d
#恢复开始
docker exec  $(docker ps | grep gitlab/gitlab-ce:12.0.9-ce.0|awk '{print $1}')   /bin/bash  -c "
gitlab-ctl stop unicorn;\
gitlab-ctl stop sidekiq;\
gitlab-rake gitlab:backup:restore  force=yes  BACKUP=$(ls /var/opt/gitlab/backups/ |grep _gitlab |awk -F "_gitlab" '{print $1}');\
gitlab-ctl start;"
http://www.lryc.cn/news/272720.html

相关文章:

  • 尚硅谷2023版Promise教程从入门到实战(讲师:任安萍)
  • 【SpringBoot】分组校验和自定义校验
  • 19、BLIP-2
  • 【微服务核心】MyBatis Plus
  • 什么是Alibaba Cloud Linux?完全兼容CentOS,详细介绍
  • Spark---RDD算子(单值类型Value)
  • 数据库中的MVCC--多版本并发控制
  • wps将姓名处理格式为:姓**
  • 2023年我的编程之旅:技术演进与自我成长的纪录
  • 好用免费的WAF---如何安装雷池社区版
  • 看似 bug 又非 bug 的一个 bug
  • mysql常见问题
  • QT上位机开发(串口界面设计)
  • k8s之pod
  • 第二百四十三回 再分享一个Json工具
  • electron自定义菜单
  • 变量和函数提升(js的问题)
  • Excel 插件:ASAP Utilities Crack
  • hyperf 十九 数据库 二 模型
  • 使用python快速开发与PDF文档对话的Gemini聊天机器人
  • Spring Cloud Gateway集成Knife4j
  • Hive10_窗口函数
  • ipvsadm命令详解
  • zabbix通过自动发现-配置监控项、触发器(小白教程)
  • Dockerfile文件介绍
  • 【PHP】函数array_reduce()使用场景
  • 软件测试基础理论学习-软件测试方法论
  • Unity 关于点击不同物品移动并触发不同事件
  • c++IO库详细介绍
  • 海外静态IP和动态IP有什么区别?推荐哪种?