使用Docker搭建git服务Gogs

在选择本地git服务时,通常大家都会选择直接安装gitlab,但是其安装复杂,占用资源多等缺点有点让人接受不了,肯定不想一台服务器只用来跑gitlab了,有些太浪费。
还可以选择直接在系统上安装没有图形界面的git服务器,但是带来了不易查看等缺点
所以笔者在这里使用了Gogs来作为自建git服务。

Gogs

—— 安装Docker ——

使用docker官方文档里面写的安装脚本我一直安装失败,就算添加上了dcoker官方源,安装过程也会非常慢,还有一堆教程里让我们使用apt-get安装,这样的确能安装但是版本太老,这里给出一种安装非常简单的方式。

使用阿里的镜像安装 >

  1. 可以使用阿里云的镜像仓库下载docker-enginedocker-ce
  2. 在终端中执行以下命令
    | 1 | curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh - | | :—- | :—- |


接下来只要等待就好,版本也相对够新。

  1. 查看docker版本,确认安装成功
    在终端中输入如下命令
    | 1 | sudo docker version | | :—- | :—- |


出现类似如下结果即为成功使用Docker搭建git服务Gogs - 图1

  1. 使用阿里仓库来加速你的docker
    可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    | 1
    2
    3
    4
    5
    6
    7
    8 | 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 | | :—- | :—- |


  2. —— 安装Gogs ——

    安装Gogs有多种方式,可以自行去Gogs官网查看,笔者这里只介绍一下docker方式去安装部署,github主页也可以自行查看

    步骤 >

  3. 首先拉取gogs镜像
    | 1 | $ sudo docker pull gogs/gogs | | :—- | :—- |


  4. 创建本地目录存放数据
    | 1 | $ sudo mkdir -p /var/gogs | | :—- | :—- |


这个目录可以自定义

  1. 使用run命令绑定端口和一些配置文件
    | 1 | $ sudo docker run -d —name=mygogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs | | :—- | :—- |


  2. 注: 这里-d将容器跑到后台,不在当前终端输出 -p用来配置外置端口和内置端口的对应关系,将10022转到22端口,将10080转到3000端口 –name用来给这个容器命名,不能重名 -v用来配置数据的对应关系 想要了解更多,需要系统的学习docker相关

配置Gogs >

第一次进入gogs会出现如下页面
使用Docker搭建git服务Gogs - 图2
可以选择使用mysql作为数据库,但是稍微麻烦一点,需要在mysql配置一下授权,如果不想麻烦,那可以直接使用sqlite3作为数据库,免去了配置数据库
几个ip很重要,可以按我给的配置来填写,当然刚开始填错了也可以后来在app.ini中修改。
邮件服务配置的可以自行选择是否需要
建议不要使用内置ssh,反正笔者试过使用内置ssh可能出现权限拒绝问题,没看到好的解决办法。
安装好并登录即能出现如下界面
使用Docker搭建git服务Gogs - 图3
然后就可以正常使用了。

创建仓库测试使用 >

  1. 创建一个测试仓库
    简单创建一个空仓库如下:
    使用Docker搭建git服务Gogs - 图4
  2. 将本地的git公钥复制到用户设置里面的ssh秘钥中
  3. 使用ssh方式将本地文件推 使用Docker搭建git服务Gogs - 图5

以上,就可以正常使用了。

注: 如果安装时,出现docker进程已运行,但是从web页面缺访问不了,可以将/var/gogs/文件夹删除重新运行 如果删除文件还不行,推荐将创建的容器删除重新创建 在配置完gogs时,外部无法访问时,请查看防火墙,是否打开了外部端口,本文中的配置只需要打开1008010022两个端口 上述环境在ubuntu16.04 lts中搭建测试成功 上述文字皆为个人看法,如有错误或建议请及时联系我