go build in docker: неожиданный бинарный файл в / go / bin - PullRequest
0 голосов
/ 13 февраля 2019

Согласно этому сообщению: Что идет в build build?

go build собирает двоичный файл и оставляет его в текущем каталоге, тогда как go install перемещает двоичный файл в $GOPATH/bin.

Так работает на моей машине.Однако у меня есть Dockerfile:

FROM golang:latest
ADD . /go/src/myapp
WORKDIR /go/src/myapp
RUN go get .
RUN go build 
RUN ls /go/bin # shows myapp!!
ENTRYPOINT ["/go/bin/myapp"] #works!!

Здесь не должно быть никакой разницы.Ожидаемый результат состоял в том, что /go/bin был пуст, а двоичный файл myapp был бы /go/src/myapp/myapp Вместо этого я вижу, что сборка работает как установка, и двоичный файл отображается в / go / bin.Почему ??

1 Ответ

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

Команда go get устанавливает ваш пакет в / go / bin.Если вы не хотите устанавливать текущий пакет, передайте -d для остановки после загрузки ваших зависимостей.

Флаг -d указывает, что нужно остановить после загрузки пакетов;то есть, он дает указание не устанавливать пакеты.

https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...