系统环境:
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:
