Raspberry Piでdockerを動かしたらstandard_init_linux.go:178: exec user process caused "exec format error"と言われる

問題

Raspberry Pi上でdocker buildしたら

standard_init_linux.go:178: exec user process caused "exec format error"
The command '/bin/sh hogehugapiyo' returned a non-zero code: 1

と言われる

原因

Raspberry PiカーネルはARMなのでWindowsMacのdocker imageをそのまま使うことができないから

解決策

ARM用にする。 rpi- から始まるimageを元に作れば良さそう

botをdockerを使って作ってみようとwindowsでしていて、自宅のRaspberry Piでホストさせようとして、このページを参考にしながらdockerをインストール

buildで上記のエラーを吐いて、1時間以上悩んでようやく原因が分かった

botを動かす環境でdockerが直接動くんじゃなかったら使うメリットないよな…. dockerの仕様上、仕方ないんだけどさ….

参考

github.com stackoverflow.com dr-asa.hatenablog.com dev.classmethod.jp