linux docker搭建gitlab 代码管理仓库 备份与还原

官方安装指南

gitlab https://docs.gitlab.com/ee/install/docker.html

安装过程

# 安装gitlab-ee:14.1.2-ee.0 版本,暴露端口9433 、9080、9022,可自行修改
$ sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 9443:443 --publish 9080:80 --publish 9022:22 \
  --name gitlab \
  --restart always \
  --volume /home/docker/gitlab/config:/etc/gitlab \
  --volume /home/docker/gitlab/logs:/var/log/gitlab \
  --volume /home/docker/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ee:14.1.2-ee.0
  
# 安装时间过长,可以通过下面指令看安装进度
$ sudo docker logs -f gitlab

#安装完成访问
http://<主机ip>:9080
初始账号:root
初始密码:打开位置查看 cat /home/docker/gitlab/config/initial_root_password
登录后记得修改密码

安装后配置

#在宿主机上打开gitlab的卷挂载目录,编辑~/config/gitlab.rb 文件
$ vi /home/docker/gitlab/config/gitlab.rb
#::begin在文件末尾添加以下配置
#访问地址。全局domain配置,包括clone地址、找回密码地址等。不建议加端口
external_url 'http://10.0.0.150'
#备份保留时间7天
gitlab_rails['backup_keep_time'] = 604800
#时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#优化内存与性能(根据需要,如果机器性能不足可以加上) https://docs.gitlab.com/omnibus/settings/memory_constrained_envs.html
puma['worker_processes'] = 0
sidekiq['max_concurrency'] = 10
prometheus_monitoring['enable'] = false

#smtp配置,下面是163配置,更多配置案例请看SMTP settings | GitLab https://docs.gitlab.com/omnibus/settings/smtp.html#smtp-settings】
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.ym.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['smtp_domain'] = "smtp.ym.163.com"
#::end

#重启使配置生效
$ docker restart gitlab

备份、还原

备份说明:
备份分为两部分:
1.配置文件备份:备份目录:/home/docker/gitlab/config/config_backup
2.数据文件备份:备份目录:/home/docker/gitlab/data/backups
GitLab 提供的备份 Rake 任务不会存储您的配置文件。这样做的主要原因是您的数据库包含的项目包括用于双因素身份验证的加密信息和 CI/CD 安全变量。将加密信息存储在与其密钥相同的位置首先违背了使用加密的目的

还原说明:
可以还原到当前的gitlab,也可以还原到新安装的gitlab,要还原备份必须与备份时的gitlab版本一致

【自动备份】
#编辑自动备份时间
$ crontab -e -u root
0 2 * * * docker exec -it gitlab gitlab-ctl backup-etc  #备份配置文件
0 2 * * * docker exec -t gitlab gitlab-rake gitlab:backup:create #备份数据


【还原备份】
#停止连接数据库的相关进程
$ docker exec -it gitlab gitlab-ctl stop puma
$ docker exec -it gitlab gitlab-ctl stop sidekiq
# 验证相关进程是否停止
$ docker exec -it gitlab gitlab-ctl status
# 运行恢复数据指令
$ docker exec -it gitlab gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
# 恢复配置文件(如有必要)
$ mv /home/docker/gitlab/config /home/docker/gitlab/config.$(date +%s)
$ tar -xf gitlab_config_1487687824_2017_02_21.tar && cd etc/gitlab/
$ mv -f * /home/docker/gitlab/config/
# 重新启动容器
$ docker restart gitlab
# 检查GitLab
$ docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true

你可能感兴趣的:(docker,Linux,docker,linux,gitlab)