1. はじめに
仮想環境を用意し、その中に MySQL をインストールすることは、環境構築の手間がかかります。
Docker を使えば、簡単に MySQL をインストールすることができます。
Docker に MySQL をインストールする方法を記載します。
2. ディレクトリとファイルの構成
以下の構成でディレクトリとファイルを作成します。
mysql
├── conf
│ ├── my.cnf
├── data
│ ├── db.dump
│ ├── cmd.sh
├── logs
├── .env
├── docker-compose.yml
3. .env の設定
以下の内容で .env ファイルを作成します。
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=sample
MYSQL_USER=user
MYSQL_PASSWORD=password
MYSQL_PORT=3306
TZ=Asia/Tokyo
4. my.cnf の設定
以下の内容で my.cnf ファイルを作成します。
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
5. docker-compose.yml の設定
以下の内容で docker-compose.yml ファイルを作成します。
services:
db:
image: mysql:8.0
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
TZ: ${TZ}
ports:
- "${MYSQL_PORT}:3306"
volumes:
- db_data:/var/lib/mysql
- ./logs:/var/log/mysql
- ./data:/data
- ./conf/my.cnf:/etc/mysql/conf.d/my.cnf
volumes:
db_data:
6. cmd.sh の設定
以下の内容で cmd.sh ファイルを作成します。
内容としては、db.dump を DB にインポートする処理を記載します。
#!/bin/bash
mysql -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /data/db.dump
7. docker コンテナの起動
以下のコマンドで docker コンテナを起動します。
ついでに、cmd.sh を実行して、db.dump を DB にインポートします。
# docker コンテナの起動
docker-compose up -d
# コンテナに入る
docker-compose exec db bash
# cmd.sh を実行し、db.dump を DB にインポート
/data/cmd.sh
7. まとめ
以上で、Docker に MySQL をインストールする方法を記載しました。
Docker を使えば、簡単に MySQL をインストールすることができます。
サクッとテスト用の DB を作成したい場合などに、便利です。
今回の記事は、Github Copilot が8割くらい書いてくれました。
A. 参考サイト
【Docker】MySQLを簡単に構築
Dockerを使ってMySQLの環境構築【WSL2】
コメント