Web開発

【GCP】「exec user process caused: exec format error」というエラーを解決!【GKE】

exec-format-error

ローカルでDockerイメージを作成してArtifact Registryにプッシュ!(ローカルで動作確認済み)

そしてGKEから起動してみるとなぜか以下のようなエラーが発生してコンテナが立ち上がらない…

standard_init_linux.go:288: exec user process caused "exec format error"

GKEの設定の問題かと思ったのですが、調査してみるとイメージが悪かったみたいです。

そこで今回はこちらについて解説していきます!

解決方法:ビルドコマンドにパラメータを追加する

$ docker build ./

こんな感じでビルドしていたのを

$ docker build --platform amd64 ./

こんな感じにしてあげるとうまくいきました。

原因:M1チップが原因でした

どうやらビルドするマシンと実行するマシンのCPUアーキテクチャが異なると起動に失敗するみたいです。

最初からCloudBuildやGitHub Actionsなんかでビルドしたら大丈夫だったってことですよね。

でも知れてよかった。

あとがき

M1めちゃくちゃ推してますが、こういうことがたまにあるのが怖いですね。

こういう原因を特定できる人すごい。

参考

https://qiita.com/keita_ogawa/items/e115c46f1c8caf6fd34d