跳到主要内容

GitLab 自建记录

阅读需 4 分钟

常用 Git 记录文件的修改记录,这些无需提交到 GitHub、GitLab 等平台管理,之前在本地搭建过开源的 GitLab,最近有些需求就着手重新搭建起来。没想需要注意的细节挺多的,就顺便记录下来了。

一、安装

1 建议采取 Docker 来安装,使用 gitlab/gitlab-ce 这个镜像。Docker 这篇文章就不细说了,可参考我之前写的Docker 安装经验与常用命令和以下示例命令。

$ docker run -itd -p 10443:443 -p 1080:80 -p 1020:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

2 运行起来的时间挺长的,耐心等待几分钟。开始是无法访问此网站,过会是 502,再过会就跑起来了。整体十分钟左右。可以查看运行时输出的命令行来判断是否正常安装。

502

二、初始化和登录

3 下面是成功后打开的页面。设置初始密码

设置初始密码

4 以 root 作为用户名,使用上一步设置的密码登录。进行账号初始化。

初始 root 用户

5 第一次成功登录后的页面。这里基础使用没问题了。

首次登陆

开始使用吧。

建议 root 仅作为权限管理账号,平时用子账号,对子账号有需求看看第三节。对 SSH 有问题看看第四节。

三、子账号注册和登录

6 退出登录,点击 Register now,注册一个新账号。

注册子账号

7 使用刚刚注册的账号登录,此时出了问题,这也是我来记录的原因。

这段报错是说:你的账号正在等待您的 GitLab 管理员批准,如果你认为这是一个错误请联系管理员。root 用户同意账号注册后,该账号才能登录。

Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error.

账号等待通过

8 重新使用 root 账号登录。

8.1 在任意页面:① 点击右上角的头像;② 点击第一行(Administrator @root);③ 点击最右侧的人物(view user in admin area)图标。

进入待通过账号页面

8.2 在 Admin Area 页面:① 点击左侧栏 Overview 内的 Users 行;② 点击 Pending approval 等待同意 ;③ 在刚新增的子账号这一行,点击右侧的设置按钮;④ 点击 Approve 通过账号注册。

通过账号注册

9 现在子账号可以登陆成功了。

子账号登录成功

开始使用子账号吧。

四、SSH

看各个教程时,似乎在 Docker 内 SSH 连接有些设置问题。

读了内容仔细想想,Docker 在主机内部,端口已经映射了,外部访问使用映射的端口应该没问题。经过尝试,是有一些小问题:安装后不做什么修改是可以直接连接的,只是不能通过 Project 给出的链接直连。

比如:新建 Project 给出的链接是 git@5bankwa93c40f9:evgo2017/project_name.git,但我们应该是以 git@192.168.1.24:1022/evgo2017/project_name.git 来访问。将容器 ID 替换为 IP+映射的SSH端口。

git@dfwbd59:evgo2017/project_name.git => git@192.168.1.24:1022/evgo2017/project_name.git
git@<容器ID>:<账号ID>/<Project名称>.git => git@<机器IP>:<映射的对应SSH端口>/<账号ID>/<Project名称>.git

为了平时方便,需要改下配置。修改挂载的 config/gitlab.rb 文件内容:

external_url 'http://192.168.1.24'
gitlab_rails['gitlab_shell_ssh_port'] = 1022

重启容器就好了。

ssh前后地址

五、最后

GitLab 做的是真不错。

文章内容若有误,敬请指出,感谢。若有疑问可联系我。文章后续更新请在文章出处查看。

文章出处:https://evgo2017.com/blog/gitlab-self-build-record 本作品采用 CC-BY-NC 协议。只要在使用、公开时进行署名,那么使用者可以对本创作进行转载、节选、混编、二次创作,但不得将本创作或由本创作衍生的创作运用于商业目的。

暂时未加入评论功能,请在对应公众号文章下或 GitHub Issues下留言反馈。