• Docker系列——利用gogs搭建属于自己的git服务


    gogs简介

    Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

    功能特性

    • 支持活动时间线
    • 支持 SSH 以及 HTTP/HTTPS 协议
    • 支持 SMTP、LDAP 和反向代理的用户认证
    • 支持反向代理子路径
    • 支持用户、组织和仓库管理系统
    • 支持添加和删除仓库协作者
    • 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
    • 支持仓库 Git 钩子和部署密钥
    • 支持仓库工单(Issue)、合并请求(Pull Request)、Wiki 以及保护分支
    • 支持迁移和镜像仓库以及它的 Wiki
    • 支持在线编辑仓库文件和 Wiki
    • 支持自定义源的 Gravatar 和 Federated Avatar
    • 支持 Jupyter Notebook
    • 支持邮件服务
    • 支持后台管理面板
    • 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(实验性支持) 数据库
    • 支持多语言本地化(22 种语言)

    部署环境

    拉取镜像

    通过docker命令拉取gogs镜像

    使用命令操作如下:

    docker pull gogs/gogs

    命令行操作如下所示:

    新建gogs目录

    在/home/software下新建文件夹gogs

    • 进入/home/software路径下新建,命令如下:

    mkdir gogs

    • 在根目录下直接新建,命令如下:

    mkdir home/software/gogs

    • 创建多级目录,命令如下:

    mkdir -p software/gogs

    开放服务器端口

    配置端口在服务器的安全组中进行配置,开放的端口,用于gogs/docker服务端口进行映射。

    启动服务

    启动服务命令如下:

    docker run --name=gogs -p 8234:22 -p 8235:3000 -v /home/software/gogs:/data gogs/gogs

    参数说明:

    • -p: 端口映射,将容器的22端口映射到宿主机的1006端口,将容器的3000端口映射到宿主机的1007端口
    • -name: 指定容器名称
    • -v: 数据卷挂载, 用于将容器和数据分离

    启动操作如下所示:

    安装配置

    通过地址访问,格式为:http://服务器ip+映射端口/install,
    如:http://101.111.22.31:8235/install,
    访问进入如下页面,进行配置数据:

    1. 配置数据库
      数据库类型选择为SQLite3,免配置,直接使用。

    2. 基本信息配置
      基本信息中,配置信息如下所示:

    • 应用名称:支持自定义,可维护成自己的专属名称
    • 仓库根目录:默认即可
    • 运行系统用户:也默认即可
    • 域名:服务器的公网地址,如:http://101.111.22.31
    • SSH端口号:服务器的映射端口,如:8234
    • HTTP端口:监听端口默认为3000
    • 应用URL:公网地址+映射端口,如:http://101.111.22.31:8235
    • 日志路径:默认即可
    1. 可选配置
      可选配置,看个人所需,其他暂时不配置,配置管理员账号即可。

    gogs使用

    配置完成后,访问地址,进入到登录页,如下所示:

    注册&登录

    在之前配置基础信息时,没配置管理员账号的话,在登录页,注册个账号便可以登录;如果有配置管理员账号,使用配置的账号直接登录即可。注册页面如下:

    控制面板

    控制面板界面如下所示:

    • 左侧:个人的操作记录,比如:提交代码,创建合并请求,请求关闭...
    • 右侧:我的仓库:属于自己的仓库,拥有管理权限
    • 右侧:参与协作的仓库:参与的仓库,没有所有权,权限按仓库所属人进行分配

    仓库管理

    仓库管理界面如下所示:

    在该页面,可以操作如下设置:

    • 基本设置,可配置仓库名称、可见性等
    • 管理协作者,添加仓库的协作者,一起维护仓库内容
    • 管理分支,配置默认分支和保护分支
    • 管理Web钩子,Gogs上发生指定事件时对指定 URL 发送 POST 通知
    • 管理Git钩子
    • 管理部署密钥
    • 转移仓库所有权

    工单管理

    工单管理界面如下所示:

    在该页面,可以查看自己的以及指派给自己的工单,也可以查看工单状态,便捷管理。

    合并请求

    合并请求界面如下所示:

    在该页面,可以查看合并请求的状态。

    创建仓库

    创建仓库界面如下所示:

    点击面板中的+号,选择创建仓库,即可进入到该页面。具体创建自己操作一波就可以了,很简单。

    代码操作

    • 克隆代码
      使用如下命令操作:

    git clone http://101.111.22.31:8235/yihuqingjiu/Auto_Test.git

    截图如下:

    • 提交代码
      提交代码的操作,可以祥见这篇博文:Git基本操作命令合集,这里就不赘述了。提交代码后,可以在面板中查看,如下所示:

    问题总结

    1. 配置gogs基础信息时,想使用本地的Mysql数据库,但一直提示权限错误,没能解决,最终还是使用了免配置的sqlite3。

    2. 想使用ssh方式拉取代码,在服务器端,生成的公钥,一直提示失败,也没能解决,报错提示信息:invalid key format: illegal base64 data at input byte 171。

    以上就是今天分享的内容,如有博友遇到如上2个问题,望告知一二,祝大家双节快乐。

  • 相关阅读:
    问题解决(2)
    问题解决(1)
    ubuntu16.04spyder闪退
    ubuntu16.04安装caffe
    python做批量剪切、旋转等小程序
    html中如何使得改变背景的透明度时,背景上的文字透明度不被改变
    css下拉菜单制作
    float浮动
    css盒子模型
    css选择器,背景样式,文本属性
  • 原文地址:https://www.cnblogs.com/hong-fithing/p/13719941.html
Copyright © 2020-2023  润新知