前言
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种不同权限:
- Guest:可以创建issue、发表评论,不能读写版本库
- Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
- Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
- Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个
权限 - 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的安装和基本的使用,希望对看到的伙伴有用,最后感谢观看!