TIL

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で混在してしまう会社も多そう。開発環境構築で詰まる自分の未来が見えるようだ。


<< 記事一覧へ