说明:Git,Github,GitLab三者关系。
Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。
GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。
GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。
有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:
一、自建代码托管系统都需要做些什么工作?
1 选择开源软件
Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。
2 硬件设施方面
如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。
可能遇到的坑:
3由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。
二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)
Gitlab的服务构成
1搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。
2传统安装过程(平台使用centos7安装)
安装和配置必要的依赖项:
安装Postfix以发送通知邮件:
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
添加GitLab镜像源并安装gitlab服务器:
注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。
重置并启动GitLab:
访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问
获取/修改超级管理员root的密码:
最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。
后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。
3Docker安装(推荐)
(1)配置docker镜像
直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 daocloudio提供的加速,速度很快。
(2)获取 GitLab 镜像
下载完成后,查看镜像列表
(3)启动容器
3个--publish指定容器与主机的端口映射,分别是 >GitLab 默认是开启你的 cpu数 +1 个进程,如果在一些 cpu 比较彪悍但是内存比较小的服务器上运行 gitlab 的话,会非常占用内存。所以我们可以改变这一设置即可。
修改 gitlab 配置文件
找到 gitlab 的配置文件 gitlabrb,取消注释,将进程数量设置为一个表合理的值。
unicorn['worker_processes'] = 3
我的 gitlab 因为用的人比较少,因此设置为 3 gitlab 官方文档中声明其最小值为2
2 载入配置
gitlab-ctl reconfigure
3 重启 gitlab 服务
gitlab-ctl restart
gitlab 服务重启要一小会儿。
搞定。可以看到内存占用还是有显著的下降。
GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用 Ruby语言 写成。后来,一部分用 Go语言 重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。
Git、Github、Gitlab的区别:
• Git
一种代码版本管理系统,可以理解为标准或者统称。
• Github
产品名称,基于git开发的代码管理系统,必须公开于互联网上的公共仓库,安全较低,私有项目需要另外付费。
• Gitlab
产品名称,基于git开发的私有代码管理系统,开源免费、可自行管理的私有仓库,安全较高。
• 其它Git
msysGit、 Gitee(码云)、Gitea、 Gogs、 GitBucket类似于Github、Gitlab
下面我们介绍如何用docker快速部署一套功能强大的gitlab-ce社区版代码仓库。
第一步、centos 76安装、配置IP、dns、网关等(略)
第二步、安装docker安装,参考作者前几天的文章《centos 7下安装docker》
>安装步骤有:
1 依赖包
2 ruby
3 用户创建
4 数据库初始化
5 redis
6 gitlab源码
7 apache
本文可能会用到连接,在命令行下创建连接的方法如下:
sudo apt-get install pptp-linux
sudo pptpsetup --create 名称 --server 服务器地址 --username 用户名
--password 密码 [--encrypt] --start
以上命令会创建一个设备,如果没有其他的拨号设备,这个设备会是ppp0,用ifconfig可以看到,“--encrypt”选项可选,因为有的服务器不支持,会提示MPPE required but
peer negotiation
failed,创建时带上“--start”选项可以看到连接的情况。
pptpsetup创建的连接重启后会失效,如果想在不重启的情况下删除连接:
sudo pptpsetup --delete 名称
创建连接后还需要使能,并且添加到路由列表:
sudo pon 名称
sudo route add
default dev ppp0
禁用连接的方法是:
sudo
poff 名称
下面开始正文:
1 依赖包
我装的是ubuntu server
1404,安装的时候可以选是否安装LAMP(Linux+Apache+MySQL+PHP),如果没装,可以用下面的命令装:
sudo tasksel install
lamp-server
安装的时候会提示输入MySQL的root密码,下面要用。
接下来是依赖关系:
sudo apt-get install flex bison ruby
build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev
libreadline-dev libncurses5-dev libffi-dev curl openssh-server
redis-server checkinstall libxml2-dev libxslt-dev
libcurl4-openssl-dev libicu-dev logrotate python-docutils
pkg-config cmake libkrb5-dev nodejs git-core
注意:这里面装了ruby,应该是191版本的,gitlab需要20以上的ruby,但是安装20以上的ruby需要低版本的ruby,所以我们先装上,一会儿卸掉。另外,ubuntu
1404的软件库里有ruby 20,但是实测不能用,所以还是从源码装ruby吧。
2 ruby
下载,编译,安装(安装前删掉ruby 191):
curl -L --progress
>gitlab-ce是gitlab的社区版本(免费)。
选择一个star数量最多的,相信大家的选择,嘿嘿。
在服务器的根目录新建一个目录,命名为 "docker-mnt"。
表示,所有和docker相关的挂载目录都放在“docker-mnt”目录中管理。
进入“docker-mnt”目录后,再新建一个"gitlab"目录,用于管理gitlab相关的挂载目录。
参考博客: >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)