专业的编程技术博客社区

网站首页 > 博客文章 正文

Docker 搭建 GibLab 代码管理仓库

baijin 2024-11-06 09:35:01 博客文章 6 ℃ 0 评论

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

环境

配置域名的原因是可以使配置文件通用,这样在别的机器进行恢复时,就不需要修改配置了,另外配置好域名后,在我们创建好项目时,克隆代码所提示的 ssh 和 http 地址就是带域名的,而不是IP地址。?

IP

角色

域名

192.168.0.143

主 GitLab 仓库

code.gitlab.com

192.168.0.154

从 GitLab 仓库

code.gitlab.com


安装 GitLab(建议在主从机器上同时安装)

创建存储目录

# 创建数据存储目录、日志目录、配置目录
mkdir -p /home/gitlab/{data,log,etc}

拉取并启动容器

docker pull twang2218/gitlab-ce-zh:11.1

docker run -d --publish 8090:8090 --publish 2222:22 --name gitlab --privileged=true --restart=always -e TZ=Asia/Shanghai -v /home/gitlab/etc:/etc/gitlab -v /home/gitlab/log:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh:11.1

修改配置文件

# 进入容器
docker exec -it gitlab /bin/bash

# 修改 /etc/gitlab/gitlab.rb

## http使用的端口以及在项目工程显示的 http 下载路径中使用
external_url 'http://code.gitlab.com:8090'

## 项目工程显示的 ssh 地址和端口
gitlab_rails['gitlab_ssh_host'] = 'code.gitlab.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2222

## 时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

## 保存备份 30 天
gitlab_rails['backup_keep_time'] = 2592000

# 执行重载配置文件
gitlab-ctl reconfigure

配置 GitLab

访问

首先为 root 用户设置密码,root 用户将作为 GitLab 的管理员



进入 GitLab 管理页面



  • 修改登录页面提示


  • 取消头像显示
    不取消会显示异常
  • 取消注册功能
    在公司内网使用,无需注册功能,账号通过管理员添加
  • 增加新用户

中文名
用户名:姓名的全拼音,如果有重名就往后面加编号,例如:zhangsan2
电子邮箱:填写公司的邮箱(让开发人员自己提供一下)

GitLab 备份与恢复

创建备份文件

docker exec gitlab gitlab-rake gitlab:backup:create

生成的备份文件为:1623140468_2021_06_08_11.1.4_gitlab_backup.tar,所在目录为:/home/gitlab/data/backups

定时备份

  • 配置主从机器免密登录
# 在主机器上生成密钥(如果已经生成就跳过这一步)
ssh-keygen -t rsa

# 将密钥拷贝到从机器,实现主机免密登录从机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.154
  • 创建定时备份脚本 /home/auto_backup.sh
# 执行备份命令
docker exec gitlab gitlab-rake gitlab:backup:create

# 将备份文件拷贝到备用机器的 GitLab 数据目录下
scp -r /home/gitlab/data/backups root@192.168.0.154:/home/gitlab/data/backups
  • 添加定时任务
vim /etc/crontab

# 每天备份两次, 12 点和 18 点各一次
0 12,18 * * * root sh /home/auto_backup.sh CRON=1

# 重新加载定时器
service cron reload
service cron restart

仓库恢复

注意:在从机器上必须按照上面的安装和配置步骤提前安装好 GitLab,然后执行以下步骤进行仓库恢复,以下操作均在从机器上执行:

  • 将备份文件拷贝到要恢复的机器(从机器)的 GitLab 数据目录下
    上面的定时任务如果没问题,这一步就可以省略了
  • 进入 GitLab 容器,执行以下恢复命令
# 进入容器
docker exec -it gitlab /bin/bash

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 为备份文件赋予执行权限
chmod -R 7777 /var/opt/gitlab/backups

cd /var/opt/gitlab/backups

# 备份文件编号备份的 tar 包数字部门,例如:1623140468_2021_06_08_11.1.4_gitlab_backup.tar,编号为:1623140468_2021_06_08_11.1.4
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

gitlab-ctl start
(此处已添加圈子卡片,请到今日头条客户端查看)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表