«Ошибка формата exec» с командой запуска docker - PullRequest
0 голосов
/ 23 октября 2018

У меня есть этот Dockerfile на основе Golang:

FROM golang:latest

RUN mkdir -p /app

WORKDIR /app

COPY bin/huru .

CMD ./huru

Я проверил, и бинарный файл HURU находится в рабочем каталоге.Я получаю эту ошибку:

/ bin / sh: 1: ./huru: ошибка формата Exec

Кто-нибудь знает, что это такое?«Сборка Docker» завершается успешно, но «Docker Run» завершается с этой ошибкой.

1 Ответ

0 голосов
/ 23 октября 2018

«Ошибка формата 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
...