Dockerコンテナ実行時に standard_init_linux.go:219: exec user process caused: exec format error が出る
alpineをベースイメージとしてDockerfileの最後でCMDやENTORYPOINT等でシェルスクリプトを実行したときに以下のようなエラーが出た。
環境はmacOS Catalina 10.15.7、Docker desktop3.1.0
standard_init_linux.go:219: exec user process caused: exec format error
いろいろググるとarmやx86_64のアーキテクチャの違いとかが出てくるがalpineとintelCPUのmacOSなので大丈夫なはず。
結局以下のリンクの内容と同じ原因だった。
単にshell scriptの書き方が悪く、ファイルの先頭に #!/bin/bash
を書いていなかったことが原因だった。
シェルスクリプトを修正し、再度実行すると次は以下のようなエラーが。
standard_init_linux.go:211: exec user process caused "no such file or directory"
どうやらalineではbashは使えないらしくashを使う必要があるらしい。
シェルスクリプトの先頭を#!/bin/ash
にすると無事動いた。