搭建私有Gitlab或Gogs

前言

由于项目越来越大,因为我需要更多的人投入到项目的开发过程中来,看中了Gitlab,所以自己准备把Gitlab部署到百度云服务器中,让其它项目的开发人员也一起投入项目开发,搭建前我看了Gitlab的官网https://about.gitlab.com/pricing/#gitlab-com、官网提供推荐使用Omnibus package installation安装方式,我考虑到Docker后期迁移和再部署都会很方便,所以采用了Docker的方式进行搭建,我用的是gitlab-ce这个是社区版本,还有个gitlab-ee是企业版本,企业版本是收费,社区版本是免费的,但同时社区版本功能会少很多,因我只需要基本功能就满足我的需求了,所以使用了gitlab-ce社区版本

搭建环境

使用的百度云BCC服务器,安装的CentOS7.5 64位系统,当然如果你们是自己的服务器或都是阿里云、腾讯云都类似

安装Docker

因为是新系统所以之前是未有安装过Docker,所以先需要安装Docker,注意:Docker对系统版本是有一定要求,必须是CentOS6.5或以上
以下为安装命令:

# 安装docker
yum -y install docker
# 启动docker
systemctl start docker
# 运行hello-world,如不存在docker会自动下载hello-world
docker run hello-world
# 查看docker镜像
docker images
# 查看运行中的容器
docker ps -a

安装gitlab-ce

# 获取gitlab-ce镜像
docker pull gitlab/gitlab-ce
# 准备容器外gitlab目录
mkdir -p /opt/gitlab/etc
mkdir -p /opt/gitlab/log
mkdir -p /opt/gitlab/data
# 运行容器
docker run --detach --publish 8443:443 --publish 8090:80 --name gitlab --restart unless-stopped -v /opt/gitlab/etc:/etc/gitlab -v /opt/gitlab/log:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab docker.io/gitlab/gitlab-ce
# --detach : 后台运行
# --publish : 端口映射
# --name : 容器名称
# --restart : 重启模式设置为unless-stopped
# -v : 挂载目录
# docker.io/gitlab/gitlab-ce : 镜像名称

修改gitlab配置

# 修改/opt/gitlab/etc/gitlab.rb
vim /opt/gitlab/etc/gitlab.rb

把external_url改成部署机器的域名或者IP地址


image.png
# 修改/opt/gitlab/data/gitlab-rails/etc/gitlab.yml
vim /opt/gitlab/data/gitlab-rails/etc/gitlab.yml
image.png

到此为止,gitlab的web管理页面就可以正常访问
如果还是不能正常访问的话,检查端口是否被占用

常用Gitlab命令

# 重新应用gitlab的配置
gitlab-ctl reconfigure
 
# 重启gitlab服务
gitlab-ctl restart
 
# 查看gitlab运行状态
gitlab-ctl status
 
#停止gitlab服务
gitlab-ctl stop
 
# 查看gitlab运行日志
gitlab-ctl tail
 
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki

Gitlab的使用

访问刚搭建的Gitlab,会提示你设置密码,这个密码是gitlab的root用户的管理员密码
设置完密码后通过root账号及密码登录gitlab

1、如果需要添加组的可以先添加组(我添加了backend组)
2、新建项目
3、开发人员注册gitlab,并设置添加ssh-key
4、管理在组中添加开发人员,指定开发人员权限
5、开发人员登录,就能看到管理员组下面新建的项目
6、如果习惯中文版,可以在个人中心配置里面选择语言为中文简体


image.png

安装Gogs

说明

之所以又介绍Gogs,是因为发现1核2G内存的服务器配置运行Gitlab很卡很慢,官网建议Gitlab至少要用4G内存使用,但服务器资源贵,后面才想到使用Gogs,Gogs是使用go语言开发,轻量便洁,内存占用少等优良特点

安装docker,如上安装方式

Gogs镜像

# Pull image from Docker Hub.
$ docker pull gogs/gogs

# Create local directory for volume.
$ mkdir -p /var/gogs

# Use `docker run` for the first time.
$ docker run -d --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs

# Use `docker start` if you have stopped it.
$ docker start gogs

如果第3条命令报如下错误:


image.png

则重启下docker:

# restart docker
systemctl restart docker
# Once again start gogs
docker start gogs
# View gogs process
docker ps 

使用docker ps就可以看到服务了:


image.png

如果为阿里云服务器,需要配置安全组

其它服务器看情况,腾讯,华为,AWS等也都是要配置的,下面是配置的样图:


image.png

安装gogs

输入docker主机的ip和端口(默认端口10080):http://IP:10080/

我安装使用docker安装一个mysql服务,然后配置用户名密码
数据库主机填上可访问的数据库主机IP,如是阿里云需要开放访问权限


image.png

注意:红色框写上自己的服务器IP地址


image.png

注意:可以不用创建管理员用户,默认第一个用户就是管理员,admin这个用户不能使用
image.png

--- 注意:如果前端端口配置错了,后面可以在/var/gogs/gogs/conf/app.ini中修改,然后重新启动docker容器

数据库连接不上解决方案

1 阿里云ECS有安全组防火墙.默认只开了ICMP,22,3389. 在服务器控制台找到 安全组-配置规则-添加安全组规则


image.png

2 如果是用root登录MySQL,在登陆后use mysql, user表root对应的localhost改为%

mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;

3 mysql默认只能自本机访问,在 /etc/mysql/mysql.conf.d/mysqld.cnf 里注释bind-address : #bind-address = 127.0.0.1
操作完成后重启mysql服务: service mysql restart
4 netstat -ntpl |grep 3306 检查是不是在监听状态
5 防火墙是否对 mysql 端口限制,设置防火墙

# 打开防火墙配置文件    
vi  /etc/sysconfig/iptables
# 增加下面一行    
# 注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 重启防火墙
systemctl restart iptables.service

有这五步基本都能解决连接不上的问题了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容