MySQL公式が Apple Silicon用のMySQLイメージをサポート
Apple Silicon (ARM 64) Macが出てから、DockerではARM64用の公式MySQLイメージが用意されておらず、
--platform linux/amd64
を指定してIntel用イメージをエミュレーションするか、代わりにmariadb イメージを利用する必要がありました。
最近、ようやくMySQL8.0において、MySQL公式でARM64版のMySQLイメージが利用可能になりました。 www.emmanuelgautier.com
利用方法
Apple silicon対応のMySQLイメージを利用するには、上記のページで紹介してあるように2通りあります。
arm64v8/mysql
を利用する。mysql/mysql-server
イメージで、Oracleによってメンテナンスされているタグを指定する
確認したところだと、8.0系のみ対応しているようです。
arm64v8/mysqlイメージを利用する
https://hub.docker.com/r/arm64v8/mysql/ arm64v8は、arm64用に作成されたイメージをまとめたリポジトリで、MySQL以外にもあります。 現時点では、MySQL8系をサポートしています。
mysql/mysql-serverイメージで、Oracleによってメンテナンスされているタグを指定する
従来通り、MySQL公式のmysql/mysql-server
イメージで、Oracleによってサポートされているタグを指定します。
arm64v8/mysqlと同様のタグ名で、OS/ARCHの項目が linux/arm64/v8
になっているものを指定します。
以上となります。
起動したイメージのアーキテクチャ確認
ためしに、linux/arm64/v8
に対応しているmysql/mysql-server:8.0.27
イメージタグを指定してみます。
https://hub.docker.com/layers/mysql/mysql-server/8.0.27/images/sha256-f9c95e7df7a8514e0d1b8d24375d2b952387e3293e225f2ba3beb2dc5d456e04?context=explore
docker-compose.yamlの抜粋ですが、下記のような感じで指定します。 platform項目は指定しません。
services: # MySQL db db: image: mysql/mysql-server:8.0.27
これでイメージをpullした後、イメージの情報を確認すると、Architectureの項目がarm64
になっていることを確認できます。
$ docker image inspect mysql/mysql-server:8.0.27 | jq '.[0].Architecture' "arm64"
以上となります。