Я пытаюсь собрать пакет go с помощью следующей команды:
CGO_ENABLED=0 GOOS=linux go build -o bin/router -installsuffix cgo -ldflags '-w'
На моем p c это занимает около 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 имеет меньше доступных процессоров, но имеет ли это большое значение? В чем может быть причина этой проблемы?
Воспроизводится с минимальным примером:
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 секунды на моем p c. </p>