文章背景:由于网络原因访问Github经常不稳定,准备在公司部署一套基于Docker的Gogs服务,用于定时同步Github上的项目。
公司网络环境不能直接使用gogs项目中原本的构建流程,同时为了节省构建过程中下载依赖包花费的时间,考虑将其Dockerfile中编译环境和运行的构建步骤拆出来,制作成两个镜像放在私有仓库中,然后再基于制作好的镜像构建gogs镜像。本文详细记录了这一过程。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs
能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
----gogs官方网站:https://gogs.io/docs/
官方文档说使用二进制安装非常方便,只需要下载编译好的二进制文件,启动服务就行。
按照循序渐进的原则,先在windows中用二进制安装,预览看看gogs到底有一些什么功能,安装是不是真的简单。
一、在window下安装gogs
- 下载压缩包
在网找到Windows系统对应的安装包下载地址
- 将压缩包解压,得到以下文件内容:
3.打开按win+R
输入cmd打开命令行,cd进入gogs目录。
例如我的gogs目录路径是D:\Program Files\gogs
,首先执行D:
回车进入D盘,再输入cd D:\Program Files\gogs
,进入gogs目录
4.启动gogs服务,执行指令gogs web
:
看到以上提示说明gogs启动成功,打开浏览器访问 locahost:3000 就能看到gogs的页面了。
根据页面提示进行后续的安装步骤,主要是一些配置内容,配置好后点击立即安装
。
如果配置了管理员账户,安装完成后自动登录到管理员账户中,否则跳转到登录页面,第一个注册用户为管理员账户。
为了安装的方便,数据库可以直接使用SQLite3,这样就不需要另外安装数据库应用。
windows上的安装步骤就到这里了,主要是为了看一下gogs是个什么应用,大概有一些什么功能。
二、在windos下从源码安装
1. 首先准备环境
本机为win10,需要安装go语言。
a. 安装GO语言参考文档:http://c.biancheng.net/view/3992.html,这里就不详细介绍了。
Go语言下载地址:官方 https://golang.google.cn/dl/、 中国Golang社区 https://studygolang.com/dl
b. 安装git:下载地址:https://git-scm.com/
2. 克隆gogs项目源码
在bash中执行指令:git clone --depth 1 https://github.com/gogs/gogs.git gogs
3. 编译主程序
执行go build -o gogs
编译主程序
这个步骤会下载所有依赖。正常情况可以看到正在下载依赖包的输出内容:
也可能会出现指令执行后反应的现象,导致这个问题的原因有两个:
a. 下载go模块速度慢;
b. gcc没正确安装。
-
下载速度慢,设置go代理解决:
执行go env
可以查看go配置,将其修改为七牛云 https://goproxy.cn/提供的代理:go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
-
gcc没正确安装。
gcc未安装报错:cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%
gcc 版本不正确报错:
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
安装GCC参考文档:https://blog.csdn.net/xia_2017/article/details/105545789
下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
下载64位x86_64-posix-seh压缩包,解压后将bin目录配置到环境变量的path中,执行gcc -v
可以看到gcc信息: