docker-composeを使うことで
ローカル開発環境用のMySQLの
起動&DBの初期化(テーブル作成&初期データ投入)を1コマンドで実行できます
構成ファイルをgitリポジトリで管理することで、
開発者各自がローカル開発環境のDBを簡単に最新化できるようになり
開発効率の向上も期待できるのではないでしょうか
サンプルをGithubで公開しました
https://github.com/rkunihiro/docker-development-db
ファイル構成と内容
ディレクトリ構成
|
+-- conf … MySQLコンテナの設定ファイルディレクトリにマウントされるディレクトリ
| |
| +-- custom.cnf … MySQLの設定ファイル
|
+-- init … MySQLテーブル作成&初期投入データSQL
| |
| +-- 00-create-tables.sql … テーブル作成SQL
| |
| +-- 01-fixture.sql … 初期データ投入SQL
|
|-- logs … MySQLコンテナのログ出力ディレクトリにマウントされるディレクトリ
|
+-- docker-compose.yml
docker-compose.yml
version: '3.2'
services:
mysql: # Mysql container
container_name: development-mysql
image: mysql:5.7
restart: always
volumes:
- ./conf:/etc/mysql/conf.d
- ./logs:/var/log/mysql
- ./init:/docker-entrypoint-initdb.d
environment:
MYSQL_ROOT_PASSWORD: rootPassword
MYSQL_DATABASE: sample
MYSQL_USER: test
MYSQL_PASSWORD: passwd
TZ: Asia/Tokyo
ports:
- 3306:3306
pma: # phpMyAdmin container
container_name: development-pma
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_USER: root
PMA_PASSWORD: rootPassword
ports:
- 8080:80
links:
- mysql:db
使い方
ターミナルアプリケーションを起動し
docker-compose.ymlファイルがあるディレクトリに移動して以下のコマンドを実行します
起動
$ docker-compose up -d
一時停止
$ docker-compose stop
phpMyAdminを使う
- Webブラウザで
http://localhost:8080/
にアクセス
開発中のプログラムからDocker上のMySQLに接続する設定
設定項目 | 設定値 |
---|---|
Host | localhost |
Port | 3306 |
DB | sample |
User | test |
Pass | passwd |
- 変更していない場合の設定値です
テーブル構成やデータの修正時
- initディレクトリ配下のSQLを修正する
- phpMyAdminを使用してエクスポートした物をSQLファイルに上書きするなど
- 下記の再起動コマンドを実行
DB名や接続ユーザ名・パスワードを変更
-
docker-compose.yml
の
MYSQL_DATABASE
,MYSQL_USER
,MYSQL_PASSWORD
を変更 - 下記の再起動コマンドを実行
再起動 (設定ファイルやSQLを修正した/更新された場合)
$ docker-compose down
$ docker-compose up -d
その他、不明点などありましたらコメントにてお寄せください