前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 搭建 GibLab 代码管理仓库

Docker 搭建 GibLab 代码管理仓库

作者头像
星星在线
发布2021-07-14 15:31:28
9300
发布2021-07-14 15:31:28
举报
文章被收录于专栏:python爬虫实战之路

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

环境

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

IP

角色

域名

192.168.0.143

主 GitLab 仓库

code.gitlab.com

192.168.0.154

从 GitLab 仓库

code.gitlab.com

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

创建存储目录

代码语言:javascript
复制
  1. # 创建数据存储目录、日志目录、配置目录
  2. mkdir -p /home/gitlab/{data,log,etc}

拉取并启动容器

代码语言:javascript
复制
  1. docker pull twang2218/gitlab-ce-zh:11.1
  2. 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

修改配置文件

代码语言:javascript
复制
  1. # 进入容器
  2. docker exec -it gitlab /bin/bash
  3. # 修改 /etc/gitlab/gitlab.rb
  4. ## http使用的端口以及在项目工程显示的 http 下载路径中使用
  5. external_url 'http://code.gitlab.com:8090'
  6. ## 项目工程显示的 ssh 地址和端口
  7. gitlab_rails['gitlab_ssh_host'] = 'code.gitlab.com'
  8. gitlab_rails['gitlab_shell_ssh_port'] = 2222
  9. ## 时区
  10. gitlab_rails['time_zone'] = 'Asia/Shanghai'
  11. ## 保存备份 30 天
  12. gitlab_rails['backup_keep_time'] = 2592000
  13. # 执行重载配置文件
  14. gitlab-ctl reconfigure

配置 GitLab

访问

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

进入 GitLab 管理页面

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

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

GitLab 备份与恢复

创建备份文件

代码语言:javascript
复制
  1. docker exec gitlab gitlab-rake gitlab:backup:create

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

定时备份

  • 配置主从机器免密登录
代码语言:javascript
复制
  1. # 在主机器上生成密钥(如果已经生成就跳过这一步)
  2. ssh-keygen -t rsa
  3. # 将密钥拷贝到从机器,实现主机免密登录从机
  4. ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.154
  • 创建定时备份脚本 /home/auto_backup.sh
代码语言:javascript
复制
  1. # 执行备份命令
  2. docker exec gitlab gitlab-rake gitlab:backup:create
  3. # 将备份文件拷贝到备用机器的 GitLab 数据目录下
  4. scp -r /home/gitlab/data/backups root@192.168.0.154:/home/gitlab/data/backups
  • 添加定时任务
代码语言:javascript
复制
  1. vim /etc/crontab
  2. # 每天备份两次, 12 点和 18 点各一次
  3. 0 12,18 * * * root sh /home/auto_backup.sh CRON=1
  4. # 重新加载定时器
  5. service cron reload
  6. service cron restart

仓库恢复

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

  • 将备份文件拷贝到要恢复的机器(从机器)的 GitLab 数据目录下 上面的定时任务如果没问题,这一步就可以省略了
  • 进入 GitLab 容器,执行以下恢复命令
代码语言:javascript
复制
  1. # 进入容器
  2. docker exec -it gitlab /bin/bash
  3. # 停止相关数据连接服务
  4. gitlab-ctl stop unicorn
  5. gitlab-ctl stop sidekiq
  6. # 为备份文件赋予执行权限
  7. chmod -R 7777 /var/opt/gitlab/backups
  8. cd /var/opt/gitlab/backups
  9. # 备份文件编号备份的 tar 包数字部门,例如:1623140468_2021_06_08_11.1.4_gitlab_backup.tar,编号为:1623140468_2021_06_08_11.1.4
  10. gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
  11. gitlab-ctl start
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python爬虫实战之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 安装 GitLab(建议在主从机器上同时安装)
    • 创建存储目录
      • 拉取并启动容器
        • 修改配置文件
        • 配置 GitLab
          • 访问
          • GitLab 备份与恢复
            • 创建备份文件
              • 定时备份
                • 仓库恢复
                相关产品与服务
                容器镜像服务
                容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档