M1 MacでMySQLのDockerイメージがpullできなかった
M1のMacでRails環境を作ろうとしたところ、MySQL8.0のDockerイメージが使えなかった。
docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
どうやらMySQLにはARM64アーキテクチャ向けのDockerイメージが用意されていないらしい。確かにDocker Hubのイメージ紹介を見るとARM64のタグが付いてない(2021-11-28時点)。
調べて見つかった対応策は以下の2つ。
linux/x86_64
(linux/amd64
)のplatformを指定してイメージを取得する- mariadbのイメージを使う
前者はどうしてもMySQLを使わなければいけない人向けで、Dockerのエミュレーション機能を信じてIntel向けイメージを動作させるもの。docker docsにも記載されているものの、「ベストエフォート」と防衛線が張られている。
In summary, running Intel-based containers on Arm-based machines should be regarded as “best effort” only.
後者は公式推奨の案。
ちょっとした個人開発だったり勉強用だったらMariaDB使うでもいいかなー。今回は勉強用なのでMariaDBのイメージを指定して解決した。
MacBook Proのラインナップが本格的にM1主流になってきていて、来年くらいは開発用のPCがIntel MacとM1 Macで混在してしまう会社も多そう。開発環境構築で詰まる自分の未来が見えるようだ。