使用CGO超时和net/http:TLS握手超时进行容器构建(arm)



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

本机构建(GOOS=linuxGOARCH=amd64(运行良好。使用我的自定义构建容器(包括arm在内的几种体系结构(在CI中构建(在我自己的runner上(基本上是可以的,尽管我有时会得到";挂起";而CCD_ 6。

使用相同的构建映像为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

然而,我可以看到(使用btop(,就在这个错误之前,qemu-arm非常繁忙(800CPU%(,正在运行与go相关的构建任务(实际上是go mod tidy进程(。

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

因此,我怀疑CCD_ 14将从源构建的各个模块的时间计数为正常的"时间";go-get-from http";,这导致观察到的超时。

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

有什么想法吗?

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

在终端中设置代理,如:

export https_proxy=127.0.0.1:1080

最新更新