搭建GitLab服务器

搭建GitLab服务器,第1张

GitLab是GitHub的免费私有库替代方案,并且安装与配置都很方便。

GitLab要求最少4GB内存,支持小团队使用没问题,实测2GB内存的VPS基本没法用,开swapfile也不行,动不动就60秒超时。因此4GB内存是必须的。

关于这一点,内存大户主要是Unicorn,基于ruby的http服务器。Unicorn会在启动后预先占用大部分内存,内存会随着使用逐渐增长,并且不会释放。根据GitLab和Unicorn的官方文档,这不是它们的锅,那么这个锅可能是ruby和rails了。解决方法是unicorn-work-kill,会根据请求次数和内存占用自动重启Unicorn。Omnibus版的GitLab是默认开启的。

GitLab分为社区版和企业版,在未付费的情况下,两者的功能是一样的。并且社区版整合了CI/CD,因此可以满足绝大部分的开发需求。

安装包主要包括Omnibus整合包,Docker、AWS等的云镜像,以及一些第三方维护的版本。其中Omnibus直接整合了所有服务端组件,适合自用和练手。

安装以Omnibus整合包为例,操作系统为Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 这几个组件:

不过服务器系统一般自带,所以是可选的。

邮件服务,用于GitLab发送找回密码的邮件:

不过如果服务器没有域名的话,大部分邮箱会拒收邮件,而管理员帐号可以直接重置其他账号的密码,所以是可选的。

官方提供的脚本:

这个脚本会自动添加源到apt 的source list,以及安全key。另外,如果自己服务器在国内,脚本会自动添加清华的镜像,速度还行。

先更新apt缓存:

推荐使用 apt 而不是 apt-get ,前者大多数情况下更简单一点。

然后是安装:

其中 EXTERNAL_URL ,改成自己的域名。没有域名的话,可以直接设置成IP的形式: http://1.2.3.4 ,这个推测跟nginx服务以及GitLab中的项目地址有关,所以最好正确设置。当然也可以之后在配置文件里更改。

安装完成后,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方还有一个关于 unicorn 的优化建议:

默认值是2,如果服务器只用于GitLab的话,官方建议是CPU核心数加一,可以提高服务器的响应速度。不过如果内存只有4G,或者服务器同时承载其他服务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死。

配置完成后,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果没有报错的话,GitLab就配置完毕并且正常运行了。接下来可以打开浏览器开始访问了。

dockergitlab服务器挂了准确来说应该是今天升级了阿里云的ECS内存之后重启实例,结果发现所有跟docker相关的东西都坏掉了。docker启动不了,所有镜像都查不到。我们的gitlab是用的docker,所以必须要把这个给弄好。

查看docker相关的文件和镜像容器都在,所以猜测数据可能没受到损坏。具体修复过程分为以下几个阶段:

1、这是由于重启了服务器造成的,所以有可能再重启一次情况会回复,但是重启后结果还是不行。

2、启动docker 的时候执行service docker start指令,显示数据如下图:

docker start/running,process 。这条指令并没有说明docker已经运行,因为我查询所有进程的时候根本没有docker,具体原因可以百度下。

3、找大神帮忙,加入了几个docker群,其中在docker分享群2中几位大神纷纷出来指点。

其中一位说service 只是相当于一个快捷方式,这样启动不了就去docker下直接手动启动。可是我找了半天没找到在哪启动。第二位朋友说dockerd指令,这个是手动启动docker的,可是执行后还是不行,(./dockerd也失败)

提示信息里说可能没有安装docker。可是我重启服务器之前运行了将近半年都是OK的,但是我不排除重启后docker完全损坏,不被识别的可能。

使用uname -a查看内核版本,看看是不是不支持docker。按照他的解释是,他之前遇到过,重启服务器之后内核更新了,导致不支持docker.所以这也是一种可能。

查看docker版本:

我这里是1.6.2的客户端,

linux内核3.13

确认了我的服务器内核是支持docker的,所以把这个可能排除。

其中杭州的以为朋友注意到,我上边的错误提示里有一句缺少docker.sock文件。所以建议我在相应的目录下简历docker.sock。上边提示信息的完整路径是/var/run/docker.sock。

按照上边说的建立后,再执行出现以下信息:

这时候注意后边那条提示,shutting down.....,看到这之后大神给出一条指令sudo apt-get install apparmor,说执行完之后就没问题了。

执行完之后果断docker可以起来了

在top中查询:

消失已久的docker终于出来了,而且docker下以前建立的容器都还在,手动起一下就好。

感谢各位大神的帮助,我的docker又复活了。总之不熟悉这个的朋友最好还是慎用,或者有人指点也好,省的不知道出问题之后该找谁。

前言:在上一篇中,已经成功使用docker搭建了Gitlab服务器,这里就简单摸索一下大概的使用教程,我自己也是初学者,就大概简单记录一下而已,如果有什么问题,欢迎留言。

1、root用户登录后,创建项目

2、新增用户

3、项目关联用户

4、本地机子安装git,使用 git --version 确定是否安装成功

5、创建本地仓库,建立完成后,在目录下会生成一个“.git”目录,这样就能执行git语句了。

git init :是在当前目录下建立仓库;

git init 文件路径 :指定一个目录创建仓库

6、也可以从服务器上克隆一个库

ssh克隆: git clone git@gitlab.example.com:root/test-y.git

http克隆: git clone http://gitlab.example.com/root/test-y.git

输入git的用户名、密码即可(Gitlab上注册/创建的)

7、创建一个分支,并推送到服务器

推送到服务器时遇到了一个问题,报错信息如下(上图2):

原因:本地新建的分支与远程分支之间没有连接起来

解决:直接按提示信息重新执行 git push --set-upstream origin dev1 即可

8、Gitlab服务端,可查看已经推送的信息

9、点击“Create merge request”按钮,将dev分支内容合并到主分支上

10、审核人员收到合并消息,审核合并请求。

11、审核通过,合并分支

到这里,大致流程就全部结束了。

git还常用到的一个语句 git pull 从服务器上拉取更新


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/189764.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-30
下一篇2023-03-30

发表评论

登录后才能评论

评论列表(0条)

    保存