gitlab搭建与使用

前言

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可注册用户,任意提交你的代码,添加SSHKey等等。区别是,GitLab是可部署到自己服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的资产放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub

搭建步骤

为快速搭建gitlab环境,本文使用docker进行搭建

1、搜索和下载gitlab镜像

docker search gitlab
sudo docker pull gitlab/gitlab-ce:latest

2、 创建docker中的网络

docker network create gitlab_net

后面创建gitlab的容器的时候可以使用自己创建的网络
在这里插入图片描述

3、创建容器,并使重要数据外部挂载到宿主机

docker run --name='gitlab' -d \
--net=gitlab_net \
--publish 1443:443 --publish 9999:80 \
--restart always \
--volume /root/docker/gitlab/config:/etc/gitlab \
--volume /root/docker/gitlab/logs:/var/log/gitlab \
--volume /root/docker/gitlab/data:/var/opt/gitlab \
--privileged=true \
gitlab/gitlab-ce:latest

4、查看启动起来的gitlab服务

docker ps | grep gitlab

参数解析

  • http端口使用 9999 【端口可以自己指定,不要和服务器中其他端口冲突就可以】
  • 网络使用 gitlab_net网络
  • 将容器内部 /etc/gitlab,/var/log/gitlab,/var/opt/gitlab - 挂载到宿主机的 /root/docker/gitlab/config,logs,data 下,防止容器被删除数据丢失
  • privileged=true 使用特权,怕有什么地方权限不足,安装不成功
  • /root/docker/gitlab下的config,logs,data没有的话,创建容器会一并创建

启动成功后,可以通过浏览器访问一下:

在这里插入图片描述

容器启动成功后,马上访问这个界面可能页面刷不出来,需要耐心等待一会儿,gitlab初次加载的时候需要初始化很多内容,但如果出现了错误的页面或者其他错误,可以进入挂载的日志目录排查一下,或者通过下面的命令进行日志的查看

docker logs gitlab

一般情况下,端口冲突的会比较多,这时候可以去修改gitlab.rb文件中的端口配置

vi gitlab.rb

找到 unicorn[‘port’] = 8080 的地方,修改为不会被占用的端口,修改完毕再次重启容器即可

docker restart gitlab

因为镜像就有一个多G,每次启动容器,重启,需要花一段时间等待,有些情况下,访问一直是502,有可能是是因为CPU、内存耗尽导致

gitlab基本使用

1、修改密码

初次登陆,需要你修改密码,修改完毕后,以root用户进行登陆
在这里插入图片描述
在这里插入图片描述

Gitlab添加组、创建用户、创建项目

1、创建组

使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、创建用户

创建用户的时候,可以选择Regular或Admin类型。

在这里插入图片描述

点击创建用户
在这里插入图片描述
在这里插入图片描述

这里没有设置密码的地方,需要在下面的界面配置
在这里插入图片描述

在这里插入图片描述

为zhangsan这个用户配置组,用户加入到具体的分组中,用户就可以被分配这个组里面对应的项目基本权限
在这里插入图片描述
这个地方,一般选择developer就可以,就是具备开发者相关权限
在这里插入图片描述

Gitlab用户在组里面有5种不同权限:

  1. Guest:可以创建issue、发表评论,不能读写版本库
  2. Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
  3. Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
  4. Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个
    权限
  5. Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组
    长可以赋予这个权限

在这里插入图片描述

将张三这个用户拉到管理员创建的项目组后,我们创建一个项目
在这里插入图片描述

在这里插入图片描述

然后使用张三的账号登陆进去看看 ,首次登录会提示你修改密码,登录进去后可以看到该用户已经具备了web_demo这个项目的权限了,同时归在zcy_grouo这个组中
在这里插入图片描述

源码上传到Gitlab仓库

idea中创建一个web项目,然后演示通过git将此项目推到gitlab上
在这里插入图片描述

在这里插入图片描述

1、开启版本控制
在这里插入图片描述

2、提交代码到本地仓库

add到本地缓存
在这里插入图片描述

git -> Commit Directory ,将文件添加到本地仓库
在这里插入图片描述
连接远程的gitlab仓库,验证用户名和密码,git -> Repository -> remote
在这里插入图片描述
拷贝gitlab中创建的项目地址到下面的url处
在这里插入图片描述

最后将项目选中,push即可完成代码提交到远程仓库中,下面要说一个问题,就是上面的gitlab中的项目URL并不是IP形式的,导致拉项目的时候验证用户名和密码一直有问题,由于我这里是使用docker开启的gitlab,因此需要进入到容器中修改配置文件,将中间的那串字符串更换为IP形式

进入容器

docker exec -it gitlab /bin/bash

进入如下目录,

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

在这里插入图片描述

修改完毕后记得在容器内重启一下gitlab服务

gitlab-ctl restart

在这里插入图片描述
这时候发现之前的那一串字符串就变成IP的形式了
在这里插入图片描述

本篇简单介绍了一下gitlab的安装和基本的使用,希望对看到的伙伴有用,最后感谢观看!


版权声明:本文为zhangcongyi420原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。