Docker部署GitLab

在此处主要记录GitLab中文社区版的部署,关于docker的安装及配置就不在此处讲解。

这是 GitLab 社区版的官方镜像:https://hub.docker.com/r/gitlab/gitlab-ce
这是 GitLab 中文社区版的镜像:https://hub.docker.com/r/twang2218/gitlab-ce-zh,我以下的内容都是基于 GitLab 中文社区版而讲解,可能不适用于 GitLab 官方社区版。

另外提醒一下,这种老版本的安装方式会存在一个小问题,但并不影响正常使用,在创建完项目后项目地址中的域名为docker的容器id,实际使用时需要复制浏览器中的 地址栏+.git 就行,如果无法接受这个问题那可以跳过这篇文章了,暂时没法解决

在这里插入图片描述
毕竟最后一次更新也是6年前了
在这里插入图片描述



下一步
在镜像的历史版本中找到自己想要的版本,pull 下来,
例如 11.1.4版本:

docker pull twang2218/gitlab-ce-zh:11.1.4

或 例如 8.8.5 版本:

docker pull twang2218/gitlab-ce-zh:8.8.5

根据自己的实际需求选择


两个版本我都安装过,在安装前服务器的占用:

在这里插入图片描述

11.1.4版本 会占用大量内存,安装后占用内存,我被震撼到了:
在这里插入图片描述

8.8.5 版本会好很多:
在这里插入图片描述




回到正题,接着下一步,先确定好GitLab存放文件的目录,例如我将GitLab部署到了:/app/gitlab 这个目录下(以实际需求为准),然后在这里创建一个启动文件,例如:run-gitlab.sh(以实际需求为准),接着在文件中编写以下内容(记得删除中文内容):

#!/bin/bash

docker run -d \
    -p 3080:80 \ 冒号前面是需要访问的端口(以实际需求为准)
    --name gitlab \
    --restart unless-stopped \
    -v /app/gitlab/config:/etc/gitlab \     冒号前面是你要部署gitlab的配置文件路径(以实际需求为准)
    -v /app/gitlab/logs:/var/log/gitlab \   冒号前面是你要部署gitlab的日志文件路径(以实际需求为准)
    -v /app/gitlab/data:/var/opt/gitlab \   冒号前面是你要部署gitlab的数据文件路径(以实际需求为准)
    twang2218/gitlab-ce-zh:8.8.5            这里是你要使用的镜像

有小伙伴可能要问为什么不使用 docker-compose.yml 部署,因为我尝试了好多遍都没法正常使用所以只能用 docker run 的方式启动,原先的docker run 命令中还需要配置 --hostname ,也就是域名或ip地址,但我最终没有加上,因为加上就无法正常启动。。。


然后运行前面编写的启动文件,耐心的等待几分钟,刚启动就访问会出现如下图的界面:
在这里插入图片描述

过几分钟后我们再次访问gitlab的地址,会出现如下页面:
在这里插入图片描述
在这里设置你的登录密码,用户名默认为 “root”,设置完成后就可以进入系统使用了。

如果你要进入容器操作可以使用以下命令行:

docker exec -it gitlab bash

关于备份与迁移,我尝试过了,只要保存好前面启动文件设置的3个映射目录,直接删除容器重新创建也能保持系统数据不变,原先的配置及项目都还会存在,但是切记要使用相同版本的镜像。



如果你是新搭建Gitlab,那么到此就结束了,接下来我顺便讲讲宿主机安装的Gitlab数据如何迁移到docker版Gitlab。












事情是这样的:我某一天在新购的一台服务器上装好宝塔、准备装Gitlab的时候应用商店突然找不到中文社区版了,经过一番查询后发现在宝塔官方论坛中 这篇文章 提到了因安全漏洞停止安装,
我内心:。。。。。。。。。查询后才发现Gitlab每年都有新漏洞 =_=||

在这里插入图片描述
然后要将旧服务器上的Gitlab迁移到新服务器上,参考以前 这篇文章 也不算复杂。



旧服务器Gitlab是安装在宿主机上的,所以执行备份命令:

sudo gitlab-rake gitlab:backup:create

进入 /var/opt/gitlab/backups 目录下查看备份文件,备份文件名格式一般为 “ 时间戳_gitlab_backup.tar ”(例如:1675114514_gitlab_backup.tar)。


接着将备份后的文件传到 docker版Gitlab 配置数据文件路径+/backups 中,例如我的配置为:-v /app/gitlab/data:/var/opt/gitlab 那实际路径就为:/app/gitlab/data/backup,
接着使用命令:

docker exec -it gitlab bash



进入容器
停止unicorn和sidekiq服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq



恢复备份数据到新服务器并覆盖

 gitlab-rake gitlab:backup:restore BACKUP=1675114514



重启gitlab服务

gitlab-ctl start



还没完,最后一步,到安装Gitlab的就服务器上去寻找文件 /etc/gitlab/gitlab-secrets.json,复制到 docker版Gitlab 配置文件路径中,例如我的配置为 -v /app/gitlab/config:/etc/gitlab ,那实际路径就为:/app/gitlab/config
执行命令:

sudo gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"

这样就结束了。



=END=

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值