1

企业级GitLab在Docker部署使用 - 包子wxl

 1 year ago
source link: https://www.cnblogs.com/wei325/p/17106525.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client



一、部署gitlab

这里使用的是Centos8,安装Docker环境 ,这里不说了,参考:https://www.cnblogs.com/wei325/p/15139701.html

gitlab有ce版和ee版,ce版为免费版本;ee版为企业版本,需要收费;企业使用ce版足够了,这里用ce版。

1)拉取Gitlab镜像

docker pull gitlab/gitlab-ce
630011-20230210174905315-1517718515.png

2)启动Docker

  先建3个目录用于把gitlab的文件挂载出来

#安装程序目录
mkdir -p /home/gitlab/etc
#数据目录
mkdir -p /home/gitlab/opt
#日志目录
mkdir -p /home/gitlab/log

启动docker

docker run \
 -itd  \
 -p 8180:80 \
 -p 8122:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce
630011-20230213094220544-674555943.png

 8180端口:gitlab管理页面端口

 8122端口:SSH端口,拉代码时的端口

    -v xxx:把Docker里面的目录映射到本机上

查看启动的gitlab

630011-20230213164231894-1454109873.png

 3)修改配置

docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码

vi /home/gitlab/etc/gitlab.rb

# 取消external_url注释,地址为宿主机地址,不需要设置端口
external_url 'http://1.15.63.120'

#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '1.15.63.120'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] =8122

# 重载服务
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

 4)修改root密码

启动docker后,gitlab已经能访问了,但还没有设置密码

630011-20230213165124680-1719028102.png
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为root123456
user.password='root123456'
# 保存
user.save!
# 退出
exit

 

630011-20230213174424741-1596965393.png

 设置完再去登录,就能登录成功了!

630011-20230213174703525-1033339339.png

 5)服务器卡顿问题解决

这里用的是腾讯云服务器,2核4G,因为gitlab会用比较多的内存和cpu,这个配置装了后服务器变得卡顿,解决办法。

1、创建swap分区

#查看swap分区情况,如果看到没有东西就是没有swap分区 
cat /proc/swaps
#创建swap分区,注意:创建swap大小为bs*count=4294971392(4G),/data/swap目录若无则找/mnt/swap
dd if=/dev/zero of=/data/swap bs=512 count=8388616
#把上文件的文件做成swap分区
mkswap /data/swap
#cat /proc/sys/vm/swappiness,如果不是60,则设置
sysctl -w vm.swappiness=60
#启用swap分区
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
#再次查看swap分区
cat /proc/swaps
630011-20230213172715625-706358936.png

2、修改配置把进程数据变少

在挂载出来的本机文件上改,目录为/home/gitlab/etc/gitlab.rb,修改完重启容器生效

vi /home/gitlab/etc/gitlab.rb
#把下面3个取消注释,工作进程减少,最低为2
puma['worker_processes'] = 2
puma['min_threads'] = 2
puma['max_threads'] = 2

# 重载服务
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure
[root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

做完这些,服务器占用资源就降下来了,也不会卡顿了。

二、使用gitlab

1)设置关闭自动创建账号功能

gitlab默认是开放注册账号功能的,在企业里面使用是不允许的,用户的账号是通过管理员创建出来的

630011-20230213231523409-1987098044.png

管理员登录进后台

630011-20230213231956068-242321910.png

 2)创建项目

630011-20230213232833998-335728715.png

630011-20230213233001023-1239716721.png

 

630011-20230213233726588-279600408.png

 

630011-20230213234136671-2080948189.png

 3)创建用户,组群,给项目权限

630011-20230213235531219-1975158686.png
630011-20230214000314204-806068189.png

把用户test加入到Test.Demo的项目里面

 

630011-20230214110931179-2049737626.png

 

630011-20230214111219767-1482691563.png

 成功把用户加了进来

630011-20230214111307335-1808663230.png

 

630011-20230214111512390-1781561226.png

GitLab用户权限管理:

GitLab用户在组中有五种权限:Guest、Reporter、Developer、Maintainer、Owner

1.Guest:可以创建issue、发表评论、不能读写版本库

2.Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限

3.Developer:可以克隆代码、开发、提交、push、研发人员可以赋予这个权限

4.Maintainer:可以创建项目、添加 tag 、保护分支、添加项目成员、编辑项目、核心研发负责人可以赋予这个权限

5.Owner:可以设置项目的访问权限-Visibility Level、删除项目、迁移项目、管理组成员、项目经理,部门经理可以赋予这个权限

三、Git拉取和提交GitLab代码

 1)安装git客户端

官网地址:https://git-scm.com/downloads/

下载后,一直下一步安装即可。安装完成后,桌面鼠标右键能看到如下图的两个菜单

630011-20230214113247557-1001954672.png

 2)git生成SSH Key

git客户端要连接仓库,就要先生成ssh key,ssh key有公钥和私钥,生成后把公钥填到git站点上,现在生成ssh key

点击Git Bash Here

2.1设置用户名

git config --global user.name 'test'

test为自己的用户名,可以随便填,注意提交记录的时候会显示这个用户名,所以一般填员工的姓名好辨认谁提交了代码

630011-20230214113721893-183390783.png

 2.2设置邮箱

git config --global user.email '[email protected]'

这个邮箱也是可以随便填,一般填员公在公司的邮箱

上两步生成的信息会在C:\Users\账号 下生成.gitconfig配置文件,特别注意此文件不能删除,此文件记录了账号和邮箱。

630011-20230214114308947-1482830307.png

 2.3生成ssh key

ssh-keygen -t rsa -C “[email protected]

填刚才的邮箱,输入后一直回车即可

生成的ssh key信息保存在 C:\Users\账号下的.ssh文件夹里

630011-20230214114759384-1678149059.png

 3)把生成的公钥填到gitlab

 git客户端要和gitlab连接,需要把公钥里面的内容填到gitlab上

回到gitlab,每个员工都会有独立的ssh key,这里我登录test账号,表示把本机的git和test账号关联

630011-20230214115330589-1355423954.png

 

630011-20230214115604880-1513217670.png

 4)拉取项目和提交文件

4.1克隆项目

找到项目的ssh地址,也可以通过http地址

630011-20230214141206783-539268505.png

 在本机上建一个文件夹放拉取的项目,在文件夹的路径里打开 Git Bash 

git clone ssh地址
630011-20230214141339905-699797619.png

 第一次拉取时会报一个无法验证主机真实性,输入yes,然后会在 ssh key的文件夹下的kenown_hosts里面生成gitlab信息,下次就不会询问了。

630011-20230214141817313-1657858331.png

 克隆完成后,可以看到项目已经被拉下来了,因为是一个空项目,所以还没有东西,只有一份描述文档

630011-20230214141920551-712311644.png

 4.2提交文件

我们新增加一个文件 abc.txt

630011-20230214142223635-202979082.png

 现在的文件是在工作区,然后把文件add到暂存区

#把文件添加到暂存区
git add *
#查看文件变化状态
git status
630011-20230214142801662-1334637780.png

 4.3提交文件到本地仓库

#提交修改到本地仓库 
git commit -m '提交一个文本文档'

630011-20230214143228794-36505486.png

4.4把本地仓库同步到远程仓库

因为这里是一个main分支,developer不能推送到main分支,所以这里给一下maintainer权限给test用户。正常企业里面开发,开发人员只有开发分支(dev),

测试分支(test)的权限,main分支只能看,不能提交代码的,因为main分支要保持着随时能发布,不能签提交代码,要由项目负责人从测试分支(test)合并 代码到main分支。

630011-20230214144324986-1481907441.png
git push
630011-20230214144509172-21843174.png

这里把本地仓库同步到远程仓库,到远程仓库看一下就能看到提交记录了

630011-20230214145135675-1297476047.png

 如果想拉取最新的代码,则用git pull

 到这里gitlab部署和使用就完成了,git如果命令行方式觉得麻烦,则可以用小乌龟git的界面可视化操作

小乌龟git下载地址为:https://tortoisegit.org/download

其余的开发IDE也都会自带有git插件,这个就不多说啦。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK