golang
的依赖下载不管是从github
还是golang.org
,经常都遇到很慢或者干脆失败的问题,找了许多方法,都不太方便或者有问题。不过从golang v1.11
版本之后支持代理,可以通过代理的方式从私服或者速度相对较快的镜像站上下载依赖。
搭建golang
私服
这里使用的是名为Athens
的开源 go
语言包管理服务,详细的介绍可以参考 https://docs.gomods.io/
为了快捷方便的使用,这里推荐docker
的方式进行部署,通过运行docker run -d -v ./data:/var/lib/athens -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens -e ATHENS_STORAGE_TYPE=disk --name athens-proxy --restart always -p 3000:3000 gomods/athens:latest
即可启动服务
或者通过docker-compose
编排服务,通过下面的docker-compose.yml
文件,运行docker-compose up -d
即可启动
version: '2'
services:
athens:
image: gomods/athens:latest
ports:
- "3000:3000"
logging:
driver: "json-file"
options:
max-size: 10m
max-file: "5"
restart: always
volumes:
- ./data:/var/lib/athens
environment:
ATHENS_DISK_STORAGE_ROOT: /var/lib/athens
ATHENS_STORAGE_TYPE: disk
设置golang
代理
完成上诉步骤之后,还需要设置环境变量启用golang
的代理功能,不同操作系统的设置方式可自行修改,将变量GO111MODULE
设置为on
,GOPROXY
设置为私服的地址http://IP:3000
若是不想自行搭建私服,也可使用一些现成的镜像站https://goproxy.io
,https://athens.azurefd.net
,或者国内阿里云的https://mirrors.aliyun.com/goproxy/
,只要将环境变量GOPROXY
修改成相应地址即可
有疑问加站长微信联系(非本文作者)