我有这个基于 Golang 的 Dockerfile:
FROM golang:latest
RUN mkdir -p /app
WORKDIR /app
COPY bin/huru .
CMD ./huru
我检查过,huru 二进制文件在工作目录中。我收到此错误:
/bin/sh: 1: ./huru: Exec format error
谁知道那是什么? “docker build”成功,但“docker run”失败并出现该错误。
最佳答案
“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
关于shell - "Exec format error"docker 运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939149/