繁体   English   中英

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

[英]go build in docker: unexpected binary in /go/bin

根据这篇文章: go build build 是什么?

go build构建二进制文件并将其$GOPATH/bin在当前目录中,而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 中。 为什么??

go get命令正在将您的软件包安装到 /go/bin 中。 如果您不想安装当前的软件包,请在下载依赖项后通过-d停止。

-d 标志指示在下载软件包后停止; 也就是说,它指示 get 不要安装软件包。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM