目的
DBFluteハンズオン用データベースの構築を簡単にするため、Docker composeでMySQLを構築する方法をメモしておきます
環境
MacBook Pro 2019年モデル。
CPUはIntel Core i9, OSはMac OS Catalinaです。
M1 MacでもBig SurでもないのでDockerの利用には特に問題ない状態です。
作ったもの
docker-compose.yml
version: '3.1'
services:
db:
image: mysql:8.0.26
restart: always
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_TCP_PORT: 43376
volumes:
- ./my.cnf:/etc/mysql/conf.d/my.cnf
- ./mysql/data:/var/lib/mysql
ports:
- 43376:43376
ポイント
DBFluteハンズオンに合わせた設定をしています
docker-compose.ymlの配置先
DBFluteハンズオンのMySQL配置先は dbflute-hands-on/localdb/mysql
直下にしました。
Docker composeの慣例的にはプロジェクトルート直下が多い気がします。
MySQLのポートを43376に変更
MYSQL_TCP_PORT: 43376
と ports: - 43376:43376
の部分
共通化のため実際は .env
に設定したほうがいいでしょう。今回はハードコードしています
ハンズオン用のmy.cnfを読み込む
MySQLのDockerイメージの公式を参考に指定しています
データフォルダを指定
data
フォルダを作成して localdb/mysql/data
を指定
rootユーザのパスワードはいったんなしで
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
パスワードは必須の方が良いのでしょうが、初期構築上なしにしています