TL;DR
Rosetta2いれたら大体治る
Rosetta2とは?
Intel Macのみ対応しているアプリケーションをApple Siliconで実行できるようにする翻訳アプリみたいなもの。
Apple Silicon登場まもない時はもはや必須だったのでみんななんだかんだでインストールしていたが、最近はアプリケーションの対応状況が良く存在が忘れられがち。
具体的にどんなエラーが起きたか?
こちらの記事を参考にDockerでJekyllを立ち上げようとしたが失敗した。
% docker-compose up
(中略)
[+] Running 3/2
✔ Network blog_default Created0.0s jekyll Creating 0.3s
✔ Container local_jekyll Created0.4s
! service_jekyll The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
Attaching to local_jekyll
local_jekyll | ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-linux-musl]
(中略)
local_jekyll exited with code 1
要するにプラットフォームが違いますぜお兄さんって言われてます。
解決策
そりゃぁそうって感じですがRosettaをインストールします
% softwareupdate --install-rosetta
I have read and agree to the terms of the software license agreement. A list of Apple SLAs may be found here: https://www.apple.com/legal/sla/
Type A and press return to agree: A
Aと打ってreturnキーを押します。
そしてdocker-compose.ymlに以下を追記します
docker-compose.yml
platform: linux/amd64
これでApple Silicon関連のエラーは消えると思います。
終わりに
まだDocker初心者なのでおかしなこと書いてたら教えてください。