Ошибка компиляции Go из исходного кода в контейнере Alpine Docker: «loadinternal: не удается найти runtime / cgo» - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать образ Alpine Docker для версии Go с поддержкой FIPS.Для этого я пытаюсь собрать Go из исходного кода, используя ветку dev.boringcrypto репозитория golang/go.

При запуске ./all.bash я получаю следующие ошибки:

Step 4/4 : RUN cd go/src && ./all.bash
 ---> Running in 00db552598f7
Building Go cmd/dist using /usr/lib/go.
# _/go/src/cmd/dist
loadinternal: cannot find runtime/cgo
/usr/lib/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64- 
alpine-linux-musl/bin/ld: cannot find Scrt1.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64- 
alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lssp_nonshared
collect2: error: ld returned 1 exit status

The command '/bin/bash -c cd go/src && ./all.bash' returned a non-zero code: 2

Что приводит к сбою тестов установки и выводит меня из сборки образа Docker.

У меня установлен gcc на образе, и я попытался установить переменную среды CGO_ENABLED=0, как предложено в других вопросах., но ни одна из этих вещей, кажется, не облегчает проблему.

Я в своем уме с этой проблемой.Кто-нибудь еще сталкивался с подобными проблемами в прошлом?Я не понимаю, почему это происходит, так как сборка работает нормально в контейнере Ubuntu.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

У меня были те же сообщения об ошибках, хотя я компилировал другой проект.

Оказывается, для работы alpine необходимо установить пакет musl-dev, поэтому я думаю, что вам нужно сделатьубедитесь, что он включен в ваш Dockerfile, или установите его вручную, запустив apk add --no-cache musl-dev.

0 голосов
/ 29 декабря 2018

Либо неправильно установлен образ, либо GOROOT неверно

Поместите go tool dist banner и go tool dist env в ваш all.bash для подсказок

...