M1チップ搭載macbookでのDockerを用いたMYSQLの接続方法(Rails)
データベース周りの環境構築時につまずいた部分なので、自分なりのエラー解決方法を記載します。
- Ruby ver
- Ruby 2.7.2
- Rails ver
- 5.2.6
- Docker Engine ver
- Docker Engine v20.10.6
- MySql ver
- 5.7.34
docker-compose.ymlの編集
docker-compose.yml
version: '3.2'
services:
database:
restart: always
image: mysql:latest
ports:
- 3306:3306
command: --default-authentication-plugin=mysql_native_password
volumes:
- mysql-datavolume:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
mysql-datavolume:
driver: local
上記のファイルでdocker-compose build
し、docker-compose up -d
するとエラーコードが出ることがあります。
Pulling database (mysql:latest)...
latest: Pulling from library/mysql
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
上記エラーコードが出た場合は、まずローカルにインストールされているmysqlのバージョンを確認してください。
確認後に、database.yml
内のimage: mysql:latest
をimage: mysql:ローカルにインストールされているmysqlのver
に指定してください。
その後、ローカルにインストールされているmysqlLのverをdockerにpullします。
docker pull --platform linux/amd64 mysql:(ローカルにインストールしているmysqlのバージョン)
この後、docker-compose up -d
するとエラーすることなく、dockerが立ち上がります。
あとは、database.yml
内で設定したパスワードのroot
を使用すれば、mysqlに接続できます。