docker run命令出现“执行格式错误”

时间:2018-10-22 23:45:32

标签: shell docker sh dockerfile

我有这个基于Golang的Dockerfile:

person

我检查了一下,并且huru二进制文件在工作目录中。我收到此错误:

  

/ bin / sh:1:./huru:执行格式错误

有人知道那是什么吗? “ docker build”成功,但“ docker run”失败,并显示该错误。

2 个答案:

答案 0 :(得分:0)

“ Exec格式错误”仅是因为我将基于OSX / MacOS构建的二进制文件复制到Docker映像中,并试图在Linux容器中运行该二进制文件。那行不通。

以下是对我有用的Dockerfile:

FROM golang:latest

RUN mkdir -p /app

WORKDIR /app

COPY . .

ENV GOPATH /app

RUN go install huru

ENTRYPOINT /app/bin/huru

和我的项目结构在主机fs上一样:

$GOPATH/
      src/
        huru/
      .dockerignore
      Dockerfile

我跑步:

docker build -t foo .
docker run foo

我的.dockerignore文件包含:

.vscode
bin
pkg

答案 1 :(得分:0)

您可以在MacOS中为目标体系结构构建应用程序(huru),然后将其复制到docker映像中。要针对目标体系结构进行构建,您必须使用以下格式的命令: env GOOS=linux GOARCH=amd64 go build -o application main.go 这样做还有一个好处,就是拥有清晰的dockerfile和较小的图像。