前言
Glitlab 比较占用内存,官方建议最低配置为 2核4G。我的服务器刚刚好是2核4G,但是还装了 Docker 跑一些其他服务,所以以防万一,还是选择在本地的虚拟机中进行安装。
如果你有一台配置较高的服务器那就更好了,一步到位。如果不想装虚拟机,服务器又太贵,也可以选择按量付费的方式购买一台2核8G的服务器,最便宜的价格是每小时四毛钱左右,稍微好一些的配置七八毛,用不了几块钱,就能学会 Gitlab 的搭建和使用。
虚拟机的安装, CentOS 系统的安装以及 Docker 环境的配置就不再演示,网上有很多非常详细的教程。我们直接上手安装 Gitlab 。
虚拟机 CentOS 的一些配置
这一步骤是为虚拟机 IP 设置一个域名,方便将来在本地主机访问。比如我的虚拟机的 IP 是 192.168.159.128
,如果不配置域名的话,将来访问就是这样的:
配置域名后,就可以直接使用域名访问了:
当然这都是假的,并不是真实域名,外网并不能访问的。仅仅是为了看上去更好看而已。所以这一步是可以略过的。
设置虚拟机的域名
开启虚拟机并登录 CentOS 系统,查看虚拟机的 IP:
$ ifconfig
使用 vim 编辑 hosts
文件:
$ vim /etc/hosts
按 I
进入编辑模式,在文件末行追加上虚拟机的 IP 和要设置的域名:
192.168.159.128 gitlab.kunwu.top
这个域名随便起。
保存文件并退出。
本地主机上的配置
本地主机可以直接通过虚拟机域名访问虚拟机中的服务。为了访问虚拟机的域名,也需要配置下 hosts 文件。Windows 系统的 hosts 文件位于 C:\Windows\System32\drivers\etc\
目录。
这个文件不能直接修改,将其拷贝到桌面或者其他路径,打开进行修改,同样在文件最后一行输入虚拟机的 IP 和域名:
192.168.159.128 gitlab.kunwu.top
保存文件,并将其复制回原来的目录,覆盖即可。
这样,当 Windows 本地访问 gitlab.kunwu.top
,就会被解析到 192.168.159.128
这个 IP,也能能访问虚拟机中的服务了。
安装 Gitlab
现在开始使用 Docker 安装 Gitlab。
下载镜像
访问 Docker Hub 查看 gitlab 镜像:
下载最新的镜像:
$ docker pull gitlab/gitlab-ce
这是 Gitlab 社区版的镜像,开源免费。
镜像比较大,下载需要两三分钟。查看下载好的镜像:
$ docker images
新建数据卷目录
如果要修改一个容器的配置或者查看它的日志,需要进入到容器里面,不是很方便。所以通常会给容器挂载数据卷,将容器内的重要目录,映射到宿主机中。
我们需要为 Gitlab 容器设置三个数据卷,也就需要在 Centos 系统中新建三个目录:
$ mkdir -p /data/gitlab/config # 映射到 Glitlab 容器中的配置目录
$ mkdir -p /data/gitlab/logs # 映射到 Glitlab 容器中的日志目录
$ mkdir -p /data/gitlab/data # 映射到 Glitlab 容器中的数据目录
运行容器
$ docker run -d \
--hostname gitlab.kunwu.top \
-p 443:443 -p 80:80 -p 23:22 \
--name gitlab \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
参数说明:
-
-d:已守护进程的方式运行容器。这样就可以让 gitlab 服务在后台运行而不影响前台的操作。
-
–hostname:设置主机名字。和我们上面给虚拟机设置的域名保持一致即可。如果是云服务器且绑定了域名,这里就是云服务器的域名。
-
-p:gitlab 需要暴露三个端口,443 和 80 是访问 Gitlab 的 Web 页面,22 是使用 Git 管理仓库时用到,但是由于宿主机的 22 被我的
sshd
服务占用了,所以这里映射到了 23。 -
–name:容器的名字
-
–restart:当容器启动失败时总是尝试自动重启
-
-v:挂载数据卷,这样就能方便修改为容器内服务的配置,同时方便做容器数据的迁移
使用镜像创建容器很快,按下回车就能创建好,返回容器的 ID
:
但是 Gitlab 比较大,容器启动时稍微慢一些。可以执行下面的命令查看下 gitlab 容器的日志:
$ docker logs -f gitlab
- -f:在命令行中查看实时日志。默认情况下日志是输出文件中的。
容器启动成功后,Windows 本地机器就能访问了。
打开浏览器访问 http://gitlab.kunwu.top
:
登录
使用初始密码登录
第一次访问 Gitlab 需要重置 root 账号的密码。
前面启动 Gitlab 容器之前,设置了它的配置文件的数据卷,来到此目录:
$ cd /data/gitlab/config
有一个 initial_root_password
文件,root 用户的初始密码密码就在此文件中:
$ cat initial_root_password
将其复制,然后回到浏览器中输入并点击登录按钮,就能完成第一次登录了。
修改语言
系统默认为英语,修改为中文。
点击右上角的用户头像,选择“Preferences”偏好设置:
来到本地化设置,选择中文,并保存配置。可以看到,目前英文做了 100% 的翻译,中文做到了 95% 的翻译,不熟悉英文的朋友使用起来也没有任何问题了。
刷新浏览器,就切换为中文界面了。
修改默认密码
Root 用户的初始密码在配置文件中只保存 24 小时,太长也不方便记忆。所以登录后先修改默认的初始密码。
点击右上角头像,选择偏好设置,然后选择左侧菜单栏的密码选项,完成密码的修改。新密码的长度需要不少于8个字符。
然后保存密码,重新登录 Gitlab。
测试:上传一个仓库
基本的配置差不多了,现在上传本地的一个仓库到 Gitlab 中测试下好不好用。
首先在 Gitlab 上新建仓库:
将远程仓库克隆到本地。此时还没有配置 SSH 秘钥,所以使用 HTTP 克隆:
$ git clone http://gitlab.kunwu.top/root/hello-gitlab.git
本地仓库中修改下 README.md 文件:
然后提交并推送到 Gitlab 仓库中:
$ git add .
$ git commit -m 'update'
$ git push origin main
需要输入 Gitlab 账号的用户名和密码:
回到 Gitlab 仓库中,README.md 文件内容已经更新了:
总结
本文在 CentOS 虚拟机中使用 Docker 快速搭建了一个 Gitlab 服务,整个过程非常丝滑。这就是 Docker 的优点。
搭建 Gitlab 需要注意的点有:
- Gitlab 的最低配置是 2核4G,低于这个配置可能出现各种未知的问题
- 使用云服务器搭建的时候最好再注册一个域名,使用起来更舒服
- 启动 Gitlab 容器时注意绑定 hostname 为域名
- 注意端口占用造成的冲突
感谢观看,欢迎下次光临~