【M1 mac】cloud runにdockerコンテナをデプロイするとterminated: Application failed to start: Failed to create init process: failed to load /bin/sh: exec format errorのエラーになる
2022年03月29日 16:30
M1 macでcloud runへDockerコンテナをデプロイするときに下記のエラーが発生していました。
Dockerfileに-platform=linux/x86_64
を追加すると解決します。
ex.
コンテナ イメージ内の実行可能ファイルは Linux 64 ビット用にコンパイルする必要があり、Cloud RunではLinux x86_64 ABI形式がサポートされています。
どうやらM1 macでDockerfileを作成するとデフォルトでは別のプラットフォームが指定されているようでした。
Linux OS では/etc/os-release
にOS情報が入っているとのことで、下記コマンドで確認しました。(参考)。WARNINGの内容を見るとhostのデフォルトプラットフォームはlinux/arm64/v8
だが(ビルド時に)リクエストされたプラットフォームはlinux/amd64と書いてあります。M1で指定されているプラットフォームはlinux/arm64/v8
のようですね。
https://stackoverflow.com/questions/66127933/cloud-run-failed-to-start-and-then-listen-on-the-port-defined-by-the-port-envi
https://onoredekaiketsu.com/x86-64-x64-amd64-what-is-the-difference-between-these/#toc10
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。