在选择本地git服务时,通常大家都会选择直接安装gitlab,但是其安装复杂,占用资源多等缺点有点让人接受不了,肯定不想一台服务器只用来跑gitlab了,有些太浪费。
还可以选择直接在系统上安装没有图形界面的git服务器,但是带来了不易查看等缺点
所以笔者在这里使用了Gogs来作为自建git服务。
Gogs
安装Docker
使用docker官方文档里面写的安装脚本我一直安装失败,就算添加上了dcoker官方源,安装过程也会非常慢,还有一堆教程里让我们使用apt-get安装,这样的确能安装但是版本太老,这里给出一种安装非常简单的方式。
使用阿里的镜像安装
可以使用阿里云的镜像仓库下载docker-engine和docker-ce
在终端中执行以下命令
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
接下来只要等待就好,版本也相对够新。
- 查看docker版本,确认安装成功
在终端中输入如下命令
sudo docker version
出现类似如下结果即为成功- 使用阿里仓库来加速你的docker
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dmmxhzvq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装Gogs
安装Gogs有多种方式,可以自行去Gogs官网查看,笔者这里只介绍一下docker方式去安装部署,github主页也可以自行查看
步骤
- 首先拉取gogs镜像
$ sudo docker pull gogs/gogs
- 创建本地目录存放数据
$ sudo mkdir -p /var/gogs
这个目录可以自定义
- 使用run命令绑定端口和一些配置文件
$ sudo docker run -d --name=mygogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
注:
- 这里-d将容器跑到后台,不在当前终端输出
- -p用来配置外置端口和内置端口的对应关系,将10022转到22端口,将10080转到3000端口
- --name用来给这个容器命名,不能重名
- -v用来配置数据的对应关系
- 想要了解更多,需要系统的学习docker相关
配置Gogs
第一次进入gogs会出现如下页面
可以选择使用mysql作为数据库,但是稍微麻烦一点,需要在mysql配置一下授权,如果不想麻烦,那可以直接使用sqlite3作为数据库,免去了配置数据库
几个ip很重要,可以按我给的配置来填写,当然刚开始填错了也可以后来在app.ini中修改。
邮件服务配置的可以自行选择是否需要
建议不要使用内置ssh,反正笔者试过使用内置ssh可能出现权限拒绝问题,没看到好的解决办法。
安装好并登录即能出现如下界面
然后就可以正常使用了。
创建仓库测试使用
-
创建一个测试仓库
简单创建一个空仓库如下:
将本地的git公钥复制到用户设置里面的ssh秘钥中
-
使用ssh方式将本地文件推送上去
以上,就可以正常使用了。
注:
- 如果安装时,出现docker进程已运行,但是从web页面缺访问不了,可以将/var/gogs/文件夹删除重新运行
- 如果删除文件还不行,推荐将创建的容器删除重新创建
- 在配置完gogs时,外部无法访问时,请查看防火墙,是否打开了外部端口,本文中的配置只需要打开10080和10022两个端口
- 上述环境在ubuntu16.04 lts中搭建测试成功
- 上述文字皆为个人看法,如有错误或建议请及时联系我