猿问

在 $PATH 中找不到可执行文件:未知错误消息

我在 $PATH 中找不到可执行文件:尝试运行 golang 项目的 docker 映像时出现未知错误。以下是我的码头文件。


FROM golang:latest

LABEL maintainer = "Nisal Perera <xxx@sss.com>"

RUN mkdir -p /go/src/github.com/user/app/

COPY . /go/src/github.com/user/app/

WORKDIR /go/src/github.com/user/app/

RUN go get -u github.com/golang/dep/cmd/dep

#RUN dep init

RUN dep ensure

RUN go build

CMD ["go run main.go"]

我得到的错误如下


docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: "go run main.go": executable file not found in $PATH: un

known.

请帮我解决一下这个。谢谢


慕运维8079593
浏览 283回答 3
3回答

扬帆大鱼

您不需要使用,go run ...因为您之前运行过go build,构建的文件将以目录命名并且看起来像它app,尝试CMD ["./app"]顺便说一句,CMD在您的情况下正确用法是,您遇到CMD ["go", "run", "main.go"]的错误与CMD命令有关,它假设go run main.go是一个文件,但事实并非如此。

尚方宝剑之说

您正在尝试以exec形式CMD使用该子句,因此您必须拆分命令及其参数。接受的格式是CMD&nbsp;["executable","param1","param2"]所以你的将是CMD&nbsp;["go",&nbsp;"run",&nbsp;"main.go"]

狐的传说

您收到此错误,因为文件“main.go”在执行“go run main.go”命令的工作目录中不可用。请检查 main.go 文件是否可用,如果是,请定义 main.go 文件的完整路径并尝试。
随时随地看视频慕课网APP

相关分类

Go
我要回答