【AWS Batch】Docker for Macを使用してアーキテクチャの違いでAWS Batchが動かなかった話

エラー

AWS Batchで簡単なスクリプトを実行しようとしたところ、下記のエラーに遭遇した。

standard_init_linux.go:228: exec user process caused: exec format error

このエラーの原因をここに書き留めておきたい。(ぼくは3時間も無駄にしたから。。。)

原因

アーキテクチャーの違い。

もうこれだけ。

Dockerコンテナの作成に、自分はM1チップのMacを使っていた。

Docker for Macで作成したコンテナを、ECRにPushしてAWS Batchで動かそうとしていた。

そう、M1チップはArmアーキテクチャのプロセッサですよね。

AWS Batch側はx86で動かそうとしていて、ここに不整合があってエラーを吐いていたっていう話。

なんとお粗末な話ですが、時間を無駄にする人が減るのを願ってここに書き記します。

解決

Windowsで、Docker for Windowsを使用してコンテナを作り直し、ECRに上げ直したところ、問題なく動きました。

あとがき

気づけてよかった。。。

参考サイト

https://zoo200.net/aws-codebuild-exec-format-error/

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント

コメントする

CAPTCHA