Home / PostsPost
搭建私有goproxy
嘟噜聪2019/09/11 19:03:45 6213人已阅
简介 由于众所周知的原因,在大陆的网络环境是无法访问到golang.org等google的网站的。但在开发日常中使用的很多依赖包或系统包依赖都是在google的服务器上。为了解决无法加载依赖的问题,国内也有很多种解决方案。一种是使用goproxy.io或七牛主导的goproxy.cn。
搭建私有goproxy
由于众所周知的原因,在大陆的网络环境是无法访问到golang.org等google的网站的。但在开发日常中使用的很多依赖包或系统包依赖都是在google的服务器上。为了解决无法加载依赖的问题,国内也有很多种解决方案。一种是使用goproxy.io或七牛主导的goproxy.cn。
在企业里,有很多情况是生产网络或测试网络环境是无法正常访问外网的,为了解决这个问题可能需要自己搭建一个proxy来管理依赖包。
搭建goprxoy
找一台可以访问外网的服务器。
下载goproxy源码:
$ go get github.com/goproxy/goproxy
$ vim main.go
增加main.go文件:
package main
import (
"net/http"
"github.com/goproxy/goproxy"
)
func main() {
http.ListenAndServe(":8080", goproxy.New())
}
在本机执行:
$ export GOPROXY=https://127.0.0.0:8080
$ GO111MODULE=on go build
进入/opt/data
目录可以看到拉取的依赖包缓存。
使用goproxy.cn
在七牜云创建一个空间"go-proxy":
克隆goproxy.cn
配置文件config.toml
# Air
[air]
app_name = "goproxy-china"
debug_mode = true
address = "0.0.0.0:8080"
minifier_enabled = true
gzip_enabled = true
coffer_enabled = true
i18n_enabled = true
# Zerolog
[zerolog]
logger_level = "debug"
# Qiniu Cloud Kodo
[kodo]
endpoint = "s3-cn-north-1.qiniucs.com"
access_key = "<ACCESS_KEY>" # qiniu access_key
secret_key = "<SECRET_KEY>" # qiniu secret_key
bucket_name = "go-proxy"
bucket_endpoint = "go-proxy.s3-cn-north-1.qiniucs.com"
# Goproxy
[goproxy]
go_bin_name = "go"
local_cache_root = "/opt/data"
设置好配置文件后,直接启动就好了:
$ go build
$ ./goproxy.cn
在七牛云上可以看到仓库增加的资源:
在开普勒云上部署goproxy
首先依然是在github上创建一个project,名叫go-proxy,然后增加一个Dockerfile文件:
FROM goproxy/goproxy:latest
CMD ["/goproxy", "-listen=0.0.0.0:8080", "-cacheDir=/opt/data", "-proxy", "https://goproxy.io", "-exclude", "*.nsini.com"]
Dockerfile很简单,就两行代码。完成之后创建一个releases
版本,名叫v1.0
:
然后我们打开开普勒云平台https://kplcloud.nsini.com。
创建一个用
名称就叫goproxy吧。
随便选择一个语言,然后输入github上的仓库地址,选择刚刚创建好的releases
版本。选择启动的容器数量及规格,输入启动的端口8080
并点击提交就好了。
然后管理员进行应用的审核:
审核完成之后直接开始部署,然后可以在微信看到构建情况(若您关注了并且在平台订阅了操作类型):
完成之后,为了让外部可以访问到该代理,需要生成一个对外可访问的地址:
这样就基本完成了。
挂载持久化存储
为了让下次拉取更加快捷,需要将拉取回来的包缓存在自己服务器上,因为容器是无状态的,所以这里需要挂载一个持久化存储块。
首先创建一个存储卷,然后在详情页进行挂载:
创建存储卷:
挂载存储卷:
同样的,手机有平台或邮箱会收到相关通知!
测试
首先将GOPROXY
环境变量设置为刚刚生成的地址:goproxy.app.nsini.com
,然后执行构建:
$ export GOPROXY=https://goproxy.app.nsini.com
$ GO111MODULE=on go build
下图可以看到,已经将相应的版本包缓存到私有仓库了。
尾巴
若您无法访问到proxy.golang.org,可以尝试自己搭建私有的goproxy,使用goproxy.io或goproxy.cn的源。
不用我说了,大家都懂的。
很赞哦! (108)
下一篇:appium环境搭建-Mac
文章评论
点击排行
本栏推荐
标签
站点信息
- 微信公众号