M1 MacでmysqlをDockerコンテナで作り、外部接続する方法について。

  • 2022.06.05
  • IT
M1 MacでmysqlをDockerコンテナで作り、外部接続する方法について。

前回一番シンプルなWebアプリを作ったわけですが、これではシンプルすぎるので、

データベースを繋げていきます。

そのような中で、M1 Mac特有のエラーも起きたので、それについても書いていきます。

結論

M1 Macを使う場合は、platformにlinux/x86_64を追記する。

Githubにコードを上げているので、手っ取り早く試したい方は、こちらをどうぞ!

ディレクトリ構成と解説

├── db_test
│ ├── db
│ │ ├── Dockerfile
│ │ └── mysql.conf.d
│ │ └── mysqld.cnf
│ └── docker-compose.yaml
└── readme.md

mysqlを使うキモとしては、mysql.conf.d/mysqld.cnfファイルを自前で作るという点です。

m1 macでmysqlコンテナを作る際のキモとしては、Dockerfileにプラットフォームを追記する点です。

以下でそれぞれを解説していきます。

 

mysql.conf.d/mysqld.cnfファイルについて

mysqlを普段使う人にとっては当たり前かもしれませんが、このファイルは自前で作る必要があります。

ネットの記事を見ると、これは自前で作るべきなのか分からなかったので…。

今回はDBのデータに日本語を使う予定もあるので、その情報を下記のように記載しました。

 

Dockerfileにプラットフォームを追記する点について

m1 macの場合は、CPUがなんなのかを記載する必要があります。

どこでも動くことがコンテナの良さなので、この辺も吸収して欲しいところですが…

下記のように–platform=linux/x86_64と指定してあげます。

 

実際に使ってみる。

1. db_testのディレクトリに移動します.
2. 起動コマンドを叩く
3. mysqlにログインしてみる。
この時、hostはLocalhostと記述するとNGっぽいです。

これで

mysql

と出たら成功です。