在此处主要记录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=


942

被折叠的 条评论
为什么被折叠?



