0

我有一个项目正在使用go modCGO它有一个相对较大的依赖树。

本地构建 ( GOOS=linux, GOARCH=amd64) 工作正常。arm使用我的自定义构建容器(包括几个架构,go get包括

使用相同的构建映像在本地构建arm(我需要使用容器,因为CGO和相应的依赖于架构的 C 工具链)现在给我以下错误(许多示例中的一个):

go: downloading github.com/go-co-op/gocron v1.9.0
scheduler/scheduler.go:7:2: github.com/go-co-op/gocron@v1.9.0: Get "https://goproxy.io/github.com/go-co-op/gocron/@v/v1.9.0.zip": net/http: TLS handshake timeout

但是,我可以看到 (with btop) 在此错误之前qemu-arm非常忙 (800 CPU%) 正在运行go相关的构建任务(实际上是一个go mod tidy进程)。

我的猜测是,这是因为没有找到适合arm特定模块的二进制文件,所以它只会即时构建它们。

所以我怀疑从源代码构建的各个模块的时间被算作go get正常的“从 http 获取”,这会导致观察到的超时。

因此,这意味着如果我能够增加 的超时值,我就可以解决问题go get,但我还没有找到任何相关信息。

有任何想法吗?

4

1 回答 1

0

您的 ISP 可能对访问https://goproxy.io地址有限制。您必须使用代理

在终端中设置代理,如:

export https_proxy=127.0.0.1:1080
于 2021-12-10T21:33:12.803 回答