手摸手教你使用 Docker 快速搭建 Gitlab 服务

前言

Glitlab 比较占用内存,官方建议最低配置为 2核4G。我的服务器刚刚好是2核4G,但是还装了 Docker 跑一些其他服务,所以以防万一,还是选择在本地的虚拟机中进行安装。

如果你有一台配置较高的服务器那就更好了,一步到位。如果不想装虚拟机,服务器又太贵,也可以选择按量付费的方式购买一台2核8G的服务器,最便宜的价格是每小时四毛钱左右,稍微好一些的配置七八毛,用不了几块钱,就能学会 Gitlab 的搭建和使用。

虚拟机的安装, CentOS 系统的安装以及 Docker 环境的配置就不再演示,网上有很多非常详细的教程。我们直接上手安装 Gitlab 。

虚拟机 CentOS 的一些配置

这一步骤是为虚拟机 IP 设置一个域名,方便将来在本地主机访问。比如我的虚拟机的 IP 是 192.168.159.128,如果不配置域名的话,将来访问就是这样的:

image-20221112223901827

配置域名后,就可以直接使用域名访问了:

image-20221112224332830

当然这都是假的,并不是真实域名,外网并不能访问的。仅仅是为了看上去更好看而已。所以这一步是可以略过的。

设置虚拟机的域名

开启虚拟机并登录 CentOS 系统,查看虚拟机的 IP:

$ ifconfig

image-20221112224605694

使用 vim 编辑 hosts 文件:

$ vim /etc/hosts

I 进入编辑模式,在文件末行追加上虚拟机的 IP 和要设置的域名:

192.168.159.128 gitlab.kunwu.top

这个域名随便起。

image-20221112115916700

保存文件并退出。

本地主机上的配置

本地主机可以直接通过虚拟机域名访问虚拟机中的服务。为了访问虚拟机的域名,也需要配置下 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 镜像

image-20221112225806690

下载最新的镜像:

$ docker pull gitlab/gitlab-ce

这是 Gitlab 社区版的镜像,开源免费。

镜像比较大,下载需要两三分钟。查看下载好的镜像:

$ docker images

image-20221112230018024

新建数据卷目录

如果要修改一个容器的配置或者查看它的日志,需要进入到容器里面,不是很方便。所以通常会给容器挂载数据卷,将容器内的重要目录,映射到宿主机中。

我们需要为 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

image-20221113130024232

但是 Gitlab 比较大,容器启动时稍微慢一些。可以执行下面的命令查看下 gitlab 容器的日志:

$ docker logs -f gitlab
  • -f:在命令行中查看实时日志。默认情况下日志是输出文件中的。

容器启动成功后,Windows 本地机器就能访问了。

打开浏览器访问 http://gitlab.kunwu.top

image-20221112121335651

登录

使用初始密码登录

第一次访问 Gitlab 需要重置 root 账号的密码。

前面启动 Gitlab 容器之前,设置了它的配置文件的数据卷,来到此目录:

$ cd /data/gitlab/config

image-20221112233705857

有一个 initial_root_password 文件,root 用户的初始密码密码就在此文件中:

$ cat initial_root_password

image-20221112233730148

将其复制,然后回到浏览器中输入并点击登录按钮,就能完成第一次登录了。

image-20221112233806770

修改语言

系统默认为英语,修改为中文。

点击右上角的用户头像,选择“Preferences”偏好设置:

image-20221112233959148

来到本地化设置,选择中文,并保存配置。可以看到,目前英文做了 100% 的翻译,中文做到了 95% 的翻译,不熟悉英文的朋友使用起来也没有任何问题了。

image-20221112234221131

刷新浏览器,就切换为中文界面了。

image-20221113130811976

修改默认密码

Root 用户的初始密码在配置文件中只保存 24 小时,太长也不方便记忆。所以登录后先修改默认的初始密码。

点击右上角头像,选择偏好设置,然后选择左侧菜单栏的密码选项,完成密码的修改。新密码的长度需要不少于8个字符。

image-20221113131109755

然后保存密码,重新登录 Gitlab。

测试:上传一个仓库

基本的配置差不多了,现在上传本地的一个仓库到 Gitlab 中测试下好不好用。

首先在 Gitlab 上新建仓库:

将远程仓库克隆到本地。此时还没有配置 SSH 秘钥,所以使用 HTTP 克隆:

$ git clone http://gitlab.kunwu.top/root/hello-gitlab.git

image-20221113131819780

本地仓库中修改下 README.md 文件:

image-20221113132117697

然后提交并推送到 Gitlab 仓库中:

$ git add .
$ git commit -m 'update'
$ git push origin main

需要输入 Gitlab 账号的用户名和密码:

image-20221113133409605

image-20221113133424152

回到 Gitlab 仓库中,README.md 文件内容已经更新了:

image-20221113133524335

总结

本文在 CentOS 虚拟机中使用 Docker 快速搭建了一个 Gitlab 服务,整个过程非常丝滑。这就是 Docker 的优点。

搭建 Gitlab 需要注意的点有:

  • Gitlab 的最低配置是 2核4G,低于这个配置可能出现各种未知的问题
  • 使用云服务器搭建的时候最好再注册一个域名,使用起来更舒服
  • 启动 Gitlab 容器时注意绑定 hostname 为域名
  • 注意端口占用造成的冲突

感谢观看,欢迎下次光临~

猜你喜欢

转载自blog.csdn.net/Old_Soldier/article/details/127870690