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 ...
随机推荐
- CSS 段落/换行/缩进
CSS 段落/换行/缩进 1.盒模型 box-sizing: content-box|border-box|inherit; content-box(默认) : 实际宽度/高度 = width/hei ...
- 解决git add README.md 时报错 fatal: pathspec 'README.md' did not match any files
解决办法一: 直接在远程仓库创建然后在本地$ git pull origin master 解决办法二: 换成$ touch README.md在本地创建修改后再commit push上去
- CRMEB小程序商城v4.0二次开发对接集成阿里云短信
作者:廖飞 - CRMEB小程序商城研发项目组长 前言 cremb小程序商城v4.0版本支持短信平台为云信,但有部分用户有需求对接阿里云短信,这篇文章将对阿里云短信平台如何对接方以及对接流程详细说明. ...
- 【API进阶之路】破圈,用一个API代替10人内容团队
摘要:我用一个API代替10人内容团队,一年帮老板省了一百万. 自从学习API以后,我用技术手段相继帮助业务部.市场部解决了不少难题,算是从纯研发破圈发展到了业务端.老板召开业务讨论会的时候也会带上我 ...
- Java生成1,2,2,3,3,3,4,4,4,4,5...序列
程序很简单,无须赘述. 竖向输出方式: public class Test { public static void main(String[] args) { int n=0; for(n=1;n& ...
- 转载:Redis主从复制与高可用方案
转载自: https://www.cnblogs.com/lizhaojun-ops/p/9447016.html 原文链接:http://gudaoyufu.com/?p=1230 redis主从复 ...
- leetcode刷题-58最后一个单词
题目 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度.如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词. 如果不存在最后一个单词,请返回 0 . 说明:一 ...
- smbms系统中引用的js文件出现乱码
问题如下显示: 时间显示出现了乱码,找到显示该时间的js文件,定位问题出现的地方. 解决方案: 改变该文件的编码方式,这里的使用了vscode进行改变js文件的编码方式 步骤如下: 使用vscode打 ...
- PHP之道(PHP The Right Way)
原文地址:http://laravel-china.github.io/php-the-right-way/
- 浅入 ABP 系列(4):事件总线
浅入 ABP 系列(4):事件总线 版权护体作者:痴者工良,微信公众号转载文章需要 <NCC开源社区>同意. 目录 浅入 ABP 系列(4):事件总线 事件总线 关于事件总线 为什么需要这 ...