Golang Go语言中快速部署一个私有的goproxy server
Golang Go语言中快速部署一个私有的goproxy server
搭建私有 goproxy
由于众所周知的原因,在大陆的网络环境是无法访问到 golang.org 等 google 的网站的。但在开发日常中使用的很多依赖包或系统包依赖都是在 google 的服务器上。为了解决无法加载依赖的问题,国内也有很多种解决方案。一种是使用 goproxy.io 或七牛主导的 goproxy.cn 。
在企业里,有很多情况是生产网络或测试网络环境是无法正常访问外网的,为了解决这个问题可能需要自己搭建一个 proxy 来管理依赖包。
在开普勒云上部署 goproxy
首先依然是在 github 上创建一个 project,名叫 go-proxy,然后增加一个 Dockerfile 文件:
FROM goproxy/goproxy:latest
CMD ["-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 的源。
不用我说了,大家都懂的。
更多关于Golang Go语言中快速部署一个私有的goproxy server的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我整个人都开普勒了
更多关于Golang Go语言中快速部署一个私有的goproxy server的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
哈哈哈 咋了这是
在Go语言中快速部署一个私有的goproxy
server,你可以按照以下步骤进行。goproxy
是一个用于Go模块代理的开源工具,能够帮助你加速模块下载和私有包管理。
-
安装goproxy: 首先,确保你已经安装了Go语言环境。然后,你可以通过
go get
命令安装goproxy
:go get -u github.com/goproxyio/goproxy
-
配置goproxy: 创建配置文件(例如
config.json
),指定你的存储后端(如本地文件系统、S3等)和私有模块路径。一个基本的配置示例如下:{ "Storage": { "Type": "local", "Root": "./storage" }, "Upstream": "https://proxy.golang.org,direct" }
-
启动goproxy: 使用
goproxy
命令并指定配置文件启动服务:goproxy -config=config.json
-
配置Go环境: 在你的Go项目中,设置
GOPRIVATE
环境变量以包含你的私有模块路径,并配置GOPROXY
以使用你的私有代理:export GOPRIVATE=your.private.module/* export GOPROXY=http://localhost:8080,direct
这样,你就成功部署并配置了一个私有的goproxy
server。使用这个代理,你可以加速Go模块的下载,并安全地管理私有模块。记得根据你的实际需求调整配置,并确保代理服务器的安全性和稳定性。