はじめに
環境構築時にdocker compose up -d
でデータベースが作成されなくて、少しハマってしまったのでメモとして残しておく。
docker-compose.yml
version: '3'
services:
mysql:
image: mysql:8.0
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --skip-character-set-client-handshake
volumes:
- ./mysql/data:/var/lib/mysql #永続化
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql #初期データ投入
- ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
ports: #ローカルでmysqld.exeが動いているため、ホスト側のポートを3307に変更
- "3307:3306"
environment: #作成するDB名,ルートユーザのパスワード,DBを操作するユーザ,タイムゾーン
MYSQL_DATABASE: db_01
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: test
MYSQL_PASSWORD: test
TZ: Asia/Tokyo
手順
1. コンテナだけでなく、ボリュームも削除
docker compose down -v
2. 永続化用のディレクトリを削除(今回のケースだとdata以降)
rm -rf mysql/data/*
4. Dockerコンテナ起動
docker compose up -d
参考