根据此帖子:What does go 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中。为什么?
答案 0 :(得分:1)
go get
命令正在将软件包安装到/ go / bin中。如果您不想安装当前的软件包,请在下载依赖项后通过-d
停止。
-d标志指示下载软件包后停止;也就是说,它指示不要安装软件包。
https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies