Go 1.13 之 Go Module 私库/代理配置快速上手

工作中经常需要自己的私有库和公共库一起使用, Go 1.13 中又增加的库校验, 刚升级的同学难免会遇到问题, 需要看大量资料后才能正常使用. 本文着重于快速上手, 配之后能直接正常使用 Go Module, 帮助你避免看大段配置说明.

我将分为自用型, 和代理型两种模式进行演示.
私有库域名设定为: mink.gitlab.com

1. 自用型

1.1 设置国内代理

1.2 设置私有库地址

说明: GOPRIVATE
中的地址, 会直连源地址获取库文件, 不走代理, 也不会做 GOSUMDB
库校验.

1.3 设置私有库git账户密码

说明:

machine
后为私有库地址域名, USERNAME
替换为账户名, APIKEY
替换为密码.
详细说明: https://golang.org/doc/faq#git_https

2. 代理型

使用 Athens
作为私库代理. 更适合供多人一起使用.

2.1 启动 Athens

这里使用 docker
进行配置. 需要 filter_file
, netrc
, docker-compose.yml
配合使用.

filter_file
文件:

netrc
文件:
详情参考 1.3

docker-compose.yml
文件:
说明:

ATHENS_GLOBAL_ENDPOINT
: 代理地址. 使用 goproxy.cn
代理公共库(国内加速). ATHENS_GONOSUM_PATTERNS
: 对应地址会在库校验时返回403, 防止因客户端的错误配置, 使私库地址流入公网. 配置为私库地址, 支持通配符.

启动docker-athens

2.2 客户端设置代理

2.3 客户端设置 GONOSUMDB

说明: GONOSUMDB
中的地址, 会放弃 GOSUMDB
库校验, 库代码仍然从代理地址获取.