最近在公司内部搭建了一个goproxy.io的服务,总结并记录一下备忘。
goproxy.io本身已经比较成熟,对部署也非常友好,按照官方的文档一步一步搭建应该都会比较顺利。当然我也不是对官方文档的无意义复制粘贴,我将从以下三个方面进行阐述:
goproxy.io服务的搭建
- 安装go环境(要求1.13及以上版本)
|
|
- 安装git
|
|
- 安装goproxy
|
|
- 启动goproxy服务(监听8080端口)
|
|
解决go get方式拉取私有库问题
明确下目标。所谓的go get方式拉取私有库,指的是能通过go get -u -v -insecure example.io/xxx/yyy
方式拉取到内部私有仓库中的go代码。example.io指的是内部的私有域名。
假设已经按照以上步骤在10.0.1.2安装了goproxy.io服务。
安装govanityurls服务(监听80端口) tonybai在其博文中说的很清楚了,我也就不重复了。贴一张他博文中的配图,一图胜千言。
将内部私有域名example.io解析到安装了以上服务的10.0.1.2。
开发人员本地环境配置
临时开启Go Module
|
|
永久开启Go Module
|
|
设置go源代码库拉取的代理地址(http://10.0.1.2:8080)
|
|
可选:设置私有库(10.0.1.2上的goproxy服务本身也会将私有库重定向至gitlab.example.com)
|
|
追加~/.gitconfig配置(修改为通过git下载源代码)
|
|
测试拉取外网的公开库
|
|
测试拉取内网的私有库(默认拉取master分支的最近一次提交)
|
|
测试拉取内网的私有库的指定版本(强烈建议为每个版本打上tag)
|
|