我正在尝试使用以下命令构建一个 go 包:
CGO_ENABLED=0 GOOS=linux go build -o bin/router -installsuffix cgo -ldflags '-w'
这在我的电脑上大约需要 0.5 秒。docker 容器中的相同命令需要 45 秒。
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/router -installsuffix cgo -ldflags '-w' /build/src/global/router
在本地我有 go 版本1.12.9 linux/amd64。docker 容器使用golang:1.13图像作为基础。
我的猜测是 docker build 进程的可用 CPU 较少,但这是否有很大的不同?这个问题的原因可能是什么?
这可以通过一个最小的示例重现:
main.go:
package main
import "log"
func main() {
log.Println("test")
}
Dockerfile:
FROM golang:1.13
ADD main.go .
RUN CGO_ENABLED=0 GOOS=linux go build -o main -installsuffix cgo -ldflags '-w'
CMD [ "main" ]
docker 容器内的命令大约需要 5 秒,而我的电脑上的 <0.1 秒。
largeQ
相关分类