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: 指定容器名称
 - -net: 将容器加入backend网络,目的是为了能够连接backend网络中的mysql数据库
 - -v: 数据卷挂载, 用于将容器和数据分离
 
启动操作如下所示:

安装配置
通过地址访问,格式为:http://服务器ip+映射端口/install,
如:http://101.111.22.31:8235/install,
访问进入如下页面,进行配置数据:
配置数据库
数据库类型选择为SQLite3,免配置,直接使用。

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


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

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

控制面板
控制面板界面如下所示:

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

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

在该页面,可以查看自己的以及指派给自己的工单,也可以查看工单状态,便捷管理。
合并请求
合并请求界面如下所示:

在该页面,可以查看合并请求的状态。
创建仓库
创建仓库界面如下所示:

点击面板中的+号,选择创建仓库,即可进入到该页面。具体创建自己操作一波就可以了,很简单。
代码操作
- 克隆代码
使用如下命令操作: 
git clone http://101.111.22.31:8235/yihuqingjiu/Auto_Test.git
截图如下:

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

 
问题总结
配置gogs基础信息时,想使用本地的Mysql数据库,但一直提示权限错误,没能解决,最终还是使用了免配置的sqlite3。
想使用ssh方式拉取代码,在服务器端,生成的公钥,一直提示失败,也没能解决,报错提示信息:invalid key format: illegal base64 data at input byte 171。
以上就是今天分享的内容,如有博友遇到如上2个问题,望告知一二,祝大家双节快乐。
Docker系列——利用gogs搭建属于自己的git服务的更多相关文章
- 基于Gitea搭建属于自己的Git服务
		
作者:IT王小二 博客:https://itwxe.com 一.搭建环境和前提 搭建环境: 操作系统:CentOS7.6 Docker版本:docker-ce-18.09.9 Lsky Pro版本:1 ...
 - 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
		
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
 - 我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!
		
写在前面 事情是这样的,今年疫情期间,我在某云购买了一套服务器,做什么呢?不是用来部署项目,也不是用来搭建网站,而是用来做代码备份和管理.没错,都是我个人的代码,也许你会说,你个人能有多少代码啊?确实 ...
 - Git 系列(二):初步了解 Git
		
在这个系列的介绍篇中,我们学习到了谁应该使用 Git,以及 Git 是用来做什么的.今天,我们将学习如何克隆公共 Git 仓库,以及如何提取出独立的文件而不用克隆整个仓库. 由于 Git 如此流行,因 ...
 - Docker+Gogs搭建个人Git服务
		
欢迎 经常使用Github的我,Github它功能强大,操作简单,不用FQ,所以大家会使用Github进行代码托管,但是,Github的私仓收费的,而且对于普通个人用户来说,价格也不便宜.很多人搭建自 ...
 - 利用 ELK 搭建 Docker 容器化应用日志中心
		
利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...
 - Centos7使用Docker安装Gogs搭建git服务器
		
gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...
 - Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)
		
在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...
 - docker进阶-利用dcoker Swarm搭建简单集群
		
什么是Swarm 在介绍Swarm之前我们要说一下什么Docker三剑客? Docker-Machine:负责在多种平台上快速安装 Docker 环境. Docker-Compose:Docker ...
 
随机推荐
- jQuery源码分析系列(二)Sizzle选择器引擎-上
			
前言 我们继续从init()方法中的find()方法往下看, jQuery.find = Sizzle; ... find: function (selector) { /** ... */ ret ...
 - 远程调试在Linux车机中的应用
			
导读 在软件开发过程中,调试是必不可少的环节,嵌入式操作系统的调试与桌面操作系统的调试相比有很大差别,嵌入式系统的可视化调试能力比桌面操作系统要弱一点.对于导航这种业务场景比较复杂的程序开发,可视化调 ...
 - python练习 - 文本的平均列数+CSV格式清洗与转换
			
文本的平均列数 描述 打印输出附件文件的平均列数,计算方法如下: ...
 - GitHub 热点速览 Vol.35:Let's Go,Rust 大放异彩
			
摘要:语言之争,一直存在于各类社群,不论是单个编程语言的交流群,亦或是 NoSQL.云开发等技术群,总能看到"要不要换 Go"."Rust 比 C++ 更强"的 ...
 - Laravel ServiceProvider注册过程及简单使用
			
Laravel ServiceProvider注册过程及简单使用 还记得facade注册流程吗?回顾下 在bootstrap/app.php中返回$app实例后,通过singleton方法绑定了三个实 ...
 - android开发之使edittext输入弹出数字软键盘。亲测可用。手机号登陆注册常用。
			
<EditText android:id="@+id/edit_digit_input" android:layout_width="wrap_content&qu ...
 - 「面向 offer 学算法」笔面试大杀器 -- 单调栈
			
目录 前言 单调栈 初入茅庐 小试牛刀 打怪升级 出师试炼 前言 单调栈是一种比较简单的数据结构.虽然简单,但在某些题目中能发挥很好的作用. 最近很多大厂的笔试.面试中都出现了单调栈的题目,而还有不少 ...
 - C003:计算球体体积 自行输入球体半径
			
程序: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { float sphereRadius; do{ pri ...
 - kali linux 开启ssh服务
			
kali linux 一般默认不开启ssh服务,可使用命令查看ssh服务是否开启 命令:service ssh status 如果显示ssh服务没有开启需要修改ssh配置文件将ssh服务开启,kali ...
 - Sympy解方程-求极限-微分-积分-矩阵运算
			
简介 Sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值.求极限.解方程.求积分.微分方程.级数展开.矩阵运算等等计算问题.虽然Matlab的类似科学计算能力也很强大 ...