Docker安装GITLAB中文版(创建、备份、还原)

1、拉取gitlab镜像

查找镜像

root@ubuntu:~# docker search xhai/gitlab

下载镜像

root@ubuntu:~# docker pull xhai/gitlab:latest

2、创建gitlab容器

创建容器

root@ubuntu:~# docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /etc/gitlab/config:/etc/gitlab -v /etc/gitlab/logs:/var/log/gitlab -v /etc/gitlab/data:/var/opt/gitlab xhai/gitlab

命令解释

-p 端口映射,冒号前为宿主机端口,后为容器内端口。
-v 目录挂载,冒号前为宿主机目录,后为容器内目录。
--name 给容器命名。
--restart always 开机自启容器。
-d 后台运行。

查看容器

root@ubuntu:~# docker ps
若出现自己运行的容器即为成功,若未出现可用如下命令查看。
root@ubuntu:~# docker ps -a
若此命令出现容器,可能配置出现错误,使用如下命令删除。
root@ubuntu:~# docker rm -f [容器ID]

3、配置详情

配置gitlab.rb文件

在gitlab上创建项目的时,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/etc/gitlab/config/gitlab.rb)

此步骤不需要进入容器内操作,直接在宿主机操作即可。
vim /etc/gitlab/config/gitlab.rb

输入如下字段

可在任意行插入如下字段,不用选择特定地点。
external_url 'http://192.168.1.1'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.1.1'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
### Email Settings
gitlab_rails['smtp_enable'] = true # 开启 SMTP 功能
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 端口不可以选择587,测试过会发送邮件失败
gitlab_rails['smtp_user_name'] = "111111111@qq.com" # * 你的邮箱账号,也可以是ge**lin@qq.com等
gitlab_rails['smtp_password'] = "qiuytyzsytg" # * 授权码,不是密码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '111111111@qq.com' # * 发件人信息,必须跟‘smtp_user_name’保持一致,否则报错
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影响 可修改为exmail.qq.com/james.com 经测试完全不影响,删除也不影响,并且发送的邮件都是一样的。

4、测试邮件服务器


不用进入到容器内
docker exec gitlab gitlab-ctl reconfigure

进入容器,开启 gitlab 的 bash 工具
docker exec -it gitlab bash

开启 gitlab-rails 工具
gitlab-rails console production

发送邮件进行测试,换自己邮箱
Notify.test_email('xhai@gmail.com', 'Message Subject', 'Message Body').deliver_now

5、重启gitlab

重启gitlab容器
docker restart gitlab

查看实时日志
docker logs -f [容器ID]

6、访问页面

http://IP+端口
端口为上面映射的80端口

7、重置root用户密码

docker exec -it gitlab bash   #进入容器
gitlab-rails console production   #开启 gitlab-rails 工具


依次输入以下命令回车
user=User.where(id:1).first
user.password='123456789'  #可自定义
user.password_confirmation='123456789'
user.save! #保存即可
最终root用户密码为123456789

8、gitlab备份

修改备份文件目录

可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

设置备份过期时间

vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800        #以秒为单位

设置自动备份

创建定时任务
crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create #每天凌晨两点备份一次

或者使用脚本备份,创建gitlab-backup.sh脚本
vim gitlab-backup.sh

#!/bin/bash
case "$1" in
    start)
            docker exec git gitlab-rake gitlab:backup:create
            ;;
esac

创建定时任务

0 2 * * * /root/gitlab_backup.sh start

9、gitlab恢复

进入容器
docker exec -it gitlab bash
gitlab-ctl stop unicorn   #停止相关数据连接服务
gitlab-ctl stop sidekiq
chmod 777 /var/opt/gitlab/backups/1648409665_2022_03_27_11.1.4_gitlab_backup.tar  #修改权限,如果是从本服务器恢复可以不修改
gitlab-rake gitlab:backup:restore BACKUP=1648409665_2022_03_27_11.1.4  #从1648409665_2022_03_27_11.1.4编号备份中恢复
gitlab-ctl start        #启动gitlab

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值