一、Gogs简介
Gogs 是一款极易搭建的自助 Git 服务。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
网址:https://gitee.com/unknwon/gogs
功能特性:
支持活动时间线
支持 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 种语言)
二、Gogs安装
(1)搜索并下载镜像
[root@localhost java]# docker search gogs
[root@localhost java]# docker pull gogs/gogs
(2)创建容器:my_gogs
[root@localhost java]# docker run -di --name=my_gogs -p 10022:22 -p 3000:3000 -v /user/java/gogsdata:/data gogs/gogs:latest
(3)查看容器:my_gogs
[root@localhost java]# docker ps
(4)浏览器访问gogs,配置相关信息,完成安装
访问地址:http://192.168.116.161:3000
提示: 首次访问安装程序页面,我们可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3,如果对于规模较大的公司,可以选择MySQL。
① 数据库设置:
注:mysql创建好下图对应的数据库和用户信息。
小虎:这里建议安装SQLite3数据库。
② 应用基本设置:
③ 可选设置(这里跳过
):
最后点击页面下方的“立即安装”按钮,等待安装完成,报如下错:
数据库设置不正确:Error 1062: Duplicate entry '' for key 'UQE_user_lower_name'
【原因未知】这里暂不做探究,后续探究。可能与之前已安装mysql数据库有关、或与mysql数据库root用户有关
故这里建议选择数据库为SQLite3,点击页面下方的“立即安装”按钮,等待安装完成,安装完成会自动跳转至gogs的登录页面:
(4)注册并登录gogs
需要注册一个gogs账号并登录:
登录后,界面如下图:
(4)创建仓库
创建一个新仓库springboot_test
:
创建成功后界面如下:
三、提交代码到Gogs
gogs中仓库地址: http://192.168.116.161:3000/root/springboot_test.git
3.1、本地(windows)要求安装git
安装步骤这里省略。
3.2、在IDEA中提交代码
(1)在IDEA中选择菜单 : File – settings , 在窗口中选择Version Control – Git
(2)选择菜单VCS --> Enable Version Control Integration…
选择Git:
(3)设置远程地址: 右键点击工程选择菜单 Git --> Repository -->Remotes…
注:
URL中填写之前创建的gogs仓库地址。
(4)右键点击工程选择菜单 Git --> Add
(5)右键点击工程选择菜单 Git --> Commit Directory…
(6)右键点击工程选择菜单 Git --> Repository --> Push …
push成功后,在Gogs页面查看提交后的项目相关信息(如下图):
四、Jenkins创建任务与执行任务
浏览器进入Jenkins管理页面:http://192.168.116.161:8888/
(1)回到首页,点击 “新建Item” 菜单(如下图),输入任务名称,选择 “构建一个Maven项目”,点击 “确定” 按钮。
(2)点击 “源码管理” 菜单,选择Git,输入gogs仓库地址
(3)点击 “Build” 菜单
① Root POM
输入项目pom文件路径:
pom.xml
注意:
(1)如果项目只是一个Maven模块,直接写:pom.xml
;
(2)如果是maven子模块,则需要填写:子模块名称/pom.xml
。
② Goals and options
输入Maven自动执行命令:
clean package docker:build -DpushImage
作用: 用于清除、打包,构建docker并push镜像。
注意: 命令开头千万不能添加mvn
,默认执行的时候会自动添加。
最后点击 “应用” 或 “保存” 按钮
创建成功如下图:
(4)返回(首页)面板(Dashboard),点击 “构建执行”按钮(如下图)
查看控制台输出(是否有错误):
构建完成后,可查看docker镜像:
[root@localhost java]# docker images
查看私有仓库:http://192.168.116.161:5000/v2/_catalog