使用Docker搭建自己的GitLab服务
背景
在很多时候我们需要一个类似于GitHub一样的平台来管理自己的代码,并且团队中使用Git进行代码开发,这个时候我们也是需要能够有一套能够管理项目进度,登记Issue并跟踪项目进度的平台和工具,这个时候GitLab就是一个非常重要的选择,当你使用过后你会发现无论是源代码管理还是项目进度管理或者是重点项目登记都是非常全面的,更重要的是这些东西完全可以将数据保存在自己的私有服务器上能够最大程度上保证代码和信息的安全,GitLab有很多的功能,点击这里查看官方文档来看看到底如何来使用这个开源的代码和项目管理平台,今天的重点是如何在Windows上面搭建一整套的服务器,网上的教程很多,很多都是在Linux服务器CentOS上面搭建服务的,很多的.Net 程序员其实对这部分的内容并不太熟悉,他们更熟悉Windows平台,另外一种方案就是在Windows上面装虚拟机然后在Linux虚拟机上面搭建GitLab服务,这篇文章主要是介绍如何通过Docker 安装GitLab镜像的方式来快速安装GitLab服务。
准备工作
1 安装或更新WSL2
在之前的文章中,我们介绍过分别在Windows7和Windows10中安装Docker的方法,之前在Windows10中我们是通过开启Hyper-V组件来进行Docker的安装,随着微软不断完善WSL以及WSL2的推出,现在完全可以不开启Hyper-V来直接进行Docker的安装。一般的Windows10系统中默认以及安装WSL,我们只需要通过下载一个 wsl_update_x64.msi来将系统中的WSL更新到WSL2的最新的版本即可,这里介绍一下WSL的安装和更新到WSL2的微软官方文档来了解详情。
2 安装 Docker Desktop
点击此处来下载最新的Docker Desktop Installer来安装Docker ,安装完成后需要重新启动电脑。
3 检查是否正确安装Docker
重启计算机后,看桌面右下角的Docker图标是否已经启动,如果已经正常启动在cmd中通过docker ps 命令来看是否已运行Docker。
安装步骤
1 创建数据卷Volume
这个是非常重要的一个步骤,之前由于没有正确执行步骤,所以如果没有正确创建数据卷,你会发现每当你的电脑重启后,你之前做的所有的操作保存的数据全部都清除了这是因为你的数据都是保存在Docker镜像里面的,并没有将Docker里面的数据同步到系统中任何一个磁盘中,所以当你执行Docker stop或者是Docker restart命名后之前所有的数据都丢失了,这个是一个非常重要的过程,一定要切记切记!!!,这里如果你对数据卷还没有一个清晰的认知,请参考这篇博客。
执行的命名是 :docker volume create XXX ,后面是数据卷的名称
这里由于GitLab中主要有三个重要的数据分别是 data、config、log,所以我们这里创建了三个数据卷,后面GitLab服务都是挂在在这几个目录下面的。
2 执行Docker run步骤
下面的这个命令非常重要,这个是安装具体的gitlab镜像到上面创建的volume下面
docker run -d -p 443:443 -p 80:80 --name gitlab --restart always -v gitlab-config-vol:/etc/gitlab -v gitlab-log-vol:/var/log/gitlab -v gitlab-data-vol:/var/opt/gitlab-e GITLAB_ROOT_EMAIL="root@local"
gitlab/gitlab-ce
-e GITLAB_ROOT_PASSWORD="gitlab_root_password"
-e EXTERNAL_URL="http://192.168.211.119"
这个命令中我们拉取的是gitlab-ce社区版的镜像,如果之前没有下载过,这个过程可能比较长,需要等待这个过程下载完然后才能正确安装,这里面每个参数的具体含义如下:
-d 后台运行容器,并返回容器ID -p 80:80 将容器内80端口映射至宿主机80端口,这是访问gitlab的端口 -p 443:443 将容器内443端口映射至宿主机443端口,这是访问ssh的端口 --name gitlab 设置容器名称为gitlab --restart always 容器自启动 -v gitlab-config-vol:/etc/gitlab 将容器/etc/gitlab目录挂载到创建的数据卷 gitlab-config-vol目录下 --privileged=true 让容器获取宿主机root权限 gitlab/gitlab-ce 镜像的名称,这里也可以写镜像ID
安装完成后我们通过docker ps -a 命令查看我们安装的docker 镜像 ,这样就是正确启动起来了,这样我们就完成了一大步。
这里需要注意安装GitLab的时候最好限定GitLab中Log的大小和数量,否则以后可能会把内存空间占满,详细请参考:Linux服务器中Docker部署的GitLab镜像访问出现500错误 - Hello——寻梦者! - 博客园 (cnblogs.com)
3 配置GitLab服务
这个步骤主要是配置GitLab在局域网中访问的Url以及端口,这个主要是方便局域网中进行浏览器的访问,这个过程主要是通过修改容器内GitLab服务来实现的,具体来说是修改GitLab默认的配置文件gitlab.rb来进行的,具体的步骤如下:
3.1 进入容器内执行命令
docker exec -it gitlab /bin/bash
这里的gitlab是我们之前容器中启动的镜像GitLab的唯一名称
3.2 使用vi编辑器打开gitlib.rb,具体命令如下:
vi /etc/gitlab/gitlab.rb
3.3 修改gitlab.rb中的重点配置项
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 eaxternal_url 'http://127.0.0.1:80' # ssh主机ip gitlab_rails['gitlab_ssh_host'] = '127.0.0.1' # ssh连接端口 gitlab_rails['gitlab_shell_ssh_port'] = 443
配置了这个后我们就可以在浏览器中通过127.0.0.1或者是localhost去访问GitLab服务了
3.4 保存并推出
# 保存并退出 :wq
这个是linux中默认的保存退出vi编辑器中的命令
3.5 让修改后的配置生效
gitlab-ctl reconfigure
3.6 重启GitLab服务
gitlab-ctl restart
3.7 退出容器
exit
4 浏览器访问GitLab服务
由于我们配置的外部访问端口是80,并且外部访问地址是本机地址,所以我们在浏览器中输入 http://127.0.0.1/或者是http://localhost都是可以的,第一次访问的过程中需要配置管理员 root默认的密码,我们按照默认的配置8位及以上的密码作为管理员密码,配置完成后我们其它用户注册的用户信息都是需要我们root账号进行授权管理的。
5 创建分组、项目及登记Issue
这个部分涉及到后面整个用户注册完毕以后,自己创建一个完整的分组,创建项目,上传代码,然后再登记issue等一系列的过程,这些过程就是具体的GitLab的使用过程了,这个部分内容非常多需要参考具体的GitLab官方文档来进行,这个需要自己在不断的使用过程中一步步探索技巧,并熟练掌握。
动图欣赏
这里由于上传图片大小的限制主要录了一部分GitLab的功能,当然完整版的功能非常庞大需要不断在实践中熟悉,具体请参阅官方文档。
相关链接
数据备份:(14条消息) GitLab从旧服务器迁移到新服务器_楚游香的博客-CSDN博客_gitlab迁移到新服务器
备份注意事项:注意在备份的时候这两个文件并没有复制到新的容器内部需要手动进行否则在原来项目进行CI或者删除的时候会报500错误
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
文件操作:https://blog.csdn.net/weixin_43288858/article/details/104597500
Linux服务器中Docker部署的GitLab镜像访问出现500错误 - Hello——寻梦者! - 博客园 (cnblogs.com)