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