gitlab的备份及恢复

系统环境:

ubuntu 18.04;基于docker跑的gitlab中文版

备份

登入gitlab容器,执行
gitlab-rake gitlab:backup:create

拷贝

scp root@192.168.0.1:/var/opt/gitlab/backups/xxxx_gitlab_backup.tar /var/opt/gitlab/backups/xxxx_gitlab_backup.tar

恢复

登入新的gitlab服务器
更改文件权限
chmod 777 /var/opt/gitlab/backups/xxxx_gitlab_backup.tar
停止数据库连接器
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=xxxx ## 不用带后面的_gitlab_backup.tar

一个gitlab-server+gitlab-run的docker-compose.yml

version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh:latest'
      container_name: 'gitlab-server'
      restart: always
      hostname: 'gitserver' #填写计算机名即可
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
         external_url 'https://xxxx'  #访问地址
         # HTTPS配置
         nginx['enable'] = true
         nginx['redirect_http_to_https']= true
         nginx['ssl_certificate']= "/home/certs/xxxxxx.pem"
         nginx['ssl_certificate_key']= "/home/certs/xxxxxx.key"
         # 端口配置
         # gitlab_rails['gitlab_shell_ssh_port'] = 7022
         # unicorn['port'] = 8880
         # Email配置
         # gitlab_rails['smtp_enable'] = true
         # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
         # gitlab_rails['smtp_port'] = 465
         # gitlab_rails['smtp_user_name'] = "system@gitlab.com"
         # gitlab_rails['smtp_password'] = "XXXXXXXXXX"
         # gitlab_rails['smtp_authentication'] = "login"
         # gitlab_rails['smtp_enable_starttls_auto'] = true
         # gitlab_rails['smtp_tls'] = true   
         # gitlab_rails['gitlab_email_from'] = 'system@gitlab.com'   
         # gitlab pages配置
         #pages_nginx['enable'] = true     #开启pages服务
         #pages_external_url 'https://appink.cn'      #Gitlab pages 域名
         #pages_nginx['redirect_http_to_https'] = true    #http转https
         #gitlab_pages['inplace_chroot'] = true    #Gitlab-ce pages
         #pages_nginx['ssl_certificate'] = "/home/certs/appink.cn/appink.cn.pem"    #证书路径
         #pages_nginx['ssl_certificate_key'] = "/home/certs/appink.cn/appink.cn.key"   #证书路径
      ports:
        - '80:80'        #http端口
        - '443:443'   #https端口
        # - '7022:7022'   #配置7022端口转发到容器的22端口上
      volumes:
        - ./gitlab/etc:/etc/gitlab             #Gitlab配置文件目录
        - gitlab:/var/opt/gitlab  #Gitlab数据目录
        - /var/log/gitlab/logs:/var/log/gitlab   #Gitlab日志目录
        - ./certs:/home/certs    #域名SSL证书目录
        - /etc/localtime:/etc/localtime:ro  #同步宿主机日期时间到容器

    runner: 
      image: 'gitlab/gitlab-runner:latest'
      container_name: gitlab-runner
      restart: always
      networks:
        - gitlab_default
      volumes:
        - ./config:/etc/gitlab-runner
        - /var/run/docker.sock:/var/run/docker.sock
networks:
  gitlab_default:
    external: true
volumes:
  gitlab:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注