为了账号安全,请及时绑定邮箱和手机立即绑定

在 dockerfile 中运行 go build main.go

在 dockerfile 中运行 go build main.go

Go
拉风的咖菲猫 2023-05-22 15:46:31
我正在尝试go build hello.go在 dockerfile 中运行,因为FROM golangCOPY hello.go /go/src/hello.goRUN cd src/RUN go build hello.goRUN ./hello一切顺利go build,直到命令出现以下错误消息:stat hello.go: no such file or directoryThe command '/bin/sh -c go build hello.go' returned a non-zero code: 1但是,如果我在 dockerfile 上注释最后两个命令并运行创建的图像,我可以go build毫无问题地运行该命令。为什么会这样?
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

每个 RUN 命令都会启动一个具有干净环境和新默认工作目录的新 shell。特别是,RUN cd ...作为一个孤立的步骤什么都不做。

如果您确实需要更改 Dockerfile 中的目录,请将这两个步骤合二为一,或者使用指令WORKDIR使更改更加全局化。

在 Go 存储库的特定情况下,由于有一个至少非常强烈鼓励的标准目录布局,我会使用它:

FROM golang

WORKDIR /go/src/github.com/me/myprogram

COPY . ./

RUN go install .

CMD ["/go/bin/myprogram"]

(一般来说,Go 处理整个目录或相关文件的“包”,而不一定是单个.go文件。)


查看完整回答
反对 回复 2023-05-22
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信