あらまし
以下のようなDockerfile
で作られたイメージを実行しようとしたところ、掲題のエラーが出る。
hogebin
はGoでビルドされたバイナリ。
Dockerfile
FROM alpine:latest
MAINTAINER kato
WORKDIR /app
COPY hogebin /app
ENTRYPOINT ["/app/hogebin"]
docker logs hogecontainer
=> standard_init_linux.go:178: exec user process caused "no such file or directory"
原因
最近のGoのバイナリはDynamic linkを行うらしく、これはそのリンク対象が存在しないために発生しているらしい。
もしかしたらAlpineを使っているのが原因かもしれない。
対処
hogebin
ビルド時に、CGO_ENABLED=0
をつける。
CGO_ENABLED=0 go build
その他
このエラーメッセージで検索すると、ENTORYPOINT
に書かれたコマンドのスクリプトがCRLFが原因のケースが多く出てくるが、
今回はバイナリなので該当しない。