问题描述
由于公司政策,我们有一台 CI/CD 服务器未连接到 Internet。
我想在这台服务器上运行单元测试。
我可以将 WinScp 文件传送给它。 为了让它工作,我想我会从我的源 Windows 机器上 FTP 编译工作的所有文件,基本上是复制 GOPATH 目录中的所有文件。
但我仍然得到错误,例如我实际上有这个文件 /export/home/teamcity/go/src/github.com/jinzhu/cop[email protected]
Gopath 集 [17:40:40][步骤 1/1] GOPATH="/export/home/teamcity/go"
但是 CI/CD 构建会出现此错误
[步骤 1/1] 去:github.com/jinzhu/cop[email protected]: git fetch -f https://github.com/jinzhu/copier refs/heads/:refs/heads/ refs/tags/:refs/tags/ 在 /export/home/teamcity/go/pkg/mod/cache/vcs/556feec929544a421f03ed1922f1d1bfffe10a3eaaf694889bbdbe940ff0218:exit28 [17:40:41] [步骤 1/1] 致命:无法访问“https://github.com/jinzhu/copier/”:无法解析主机:github.com;名称或服务未知
有没有人有在没有连接到互联网的服务器上编译 Golang 代码的经验?
解决方法
您应该查看 go modules 的官方文档以了解其工作原理。
就您而言,只需先下载所有依赖项:
go mod download
然后将所有依赖项复制到您的项目中:
go mod vendor
之后,将您的代码与此供应商一起发送。它包括在您的服务器上构建所需的所有包。
go build -mod vendor