exec format error とは
とは。
どうも動作させようとしている環境に対して、 docker build 時の platform と異なっているとこうなるらしい。 ヘーッ知らなかった。
なんで発生したのか
対象の環境は AWS ECR + ECS Fargate で linux/amd64 な Nginx を動作させているのだけど、確認したら前回 build して push したのが一年前だった。
その頃はまだ Lima (docker はサンプルの x86_64 イメージをそのまま利用していた) を使っていて、最近アサインされたプロジェクトの都合で Lima だと動かないので DockerDesktop (AppleSillicon 環境) に戻したのだった。
で、今回コンフィグ変更を実施して久しぶりに build -> push としたらタイトルの通りってワケ。
解決方法
元々の dockerfile がこんな感じだった。
FROM nginx:latest 以下略
ハイ。 platform を指定しましょうね。
FROM --platform=linux/amd64 nginx:latest 以下略
これでヨイ。
動いたからこれでいいや、で暗黙のプラットフォーム指定はやめようね!という学びだった。