エラー概要
AWS EKS上で作成したDockerイメージを起動しようとした際に、以下のエラーが発生。
exec /usr/local/bin/docker-entrypoint.sh: exec format error
環境
CPUアーキテクチャ
ビルドマシン: arm64(Apple Silicon / M1, M2 Mac)
実行マシン: amd64(EC2)
原因
このエラーの主な原因は、Dockerイメージのアーキテクチャと実行環境のアーキテクチャが一致していないこと。
今回のケースでは、Apple Silicon Mac(ARM64)でDockerイメージをビルドし、異なるアーキテクチャ(x86_64)上で実行しようとしたことが原因。
# ビルド時のコマンド
docker build --platform linux/arm64 -t xxxx .
解決策
--platform
の指定を適切にする
現在のマシンのアーキテクチャを確認し、それに合わせたプラットフォームを指定する。
docker build --platform linux/amd64 -t xxxx .