AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

exec /docker-entrypoint.sh: exec format error

exec format error とは

とは。

どうも動作させようとしている環境に対して、 docker build 時の platform と異なっているとこうなるらしい。 ヘーッ知らなかった。

zenn.dev

なんで発生したのか

対象の環境は 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

以下略

これでヨイ。

動いたからこれでいいや、で暗黙のプラットフォーム指定はやめようね!という学びだった。