猿问

在 docker 中构建:/go/bin 中的意外二进制文件

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 中。为什么??


撒科打诨
浏览 101回答 1
1回答

心有法竹

该go get命令正在将您的包安装到 /go/bin 中。如果您不想安装当前包,则-d在下载依赖项后传递给停止。-d 标志指示 get 在下载包后停止;也就是说,它指示 get 不要安装软件包。
随时随地看视频慕课网APP

相关分类

Go
我要回答