TOP

DockerのMySQLコンテナの初回起動時にSQLやシェルを実行

2016-11-06 20:58:21

公式のMySQLイメージ(library/mysql)を使用して作成する場合、/docker-entrypoint-initdb.dディレクトリにある.sh.sqlファイルが、初回起動時に自動で実行されるようになっているらしい

MySQLコンテナ初回起動時にユーザを作成する

MySQLコンテナ(ここではmy-gandamu)のマウントボリュームに以下のように追加

-v /var/containers/my-gandamu/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/

以下のように、マウントするディレクトリにSQL()create_user.sql)を置いておく

$ tree /var/containers/my-gandamu/
/var/containers/my-gandamu/
├── docker-entrypoint-initdb.d
│   └── create_user.sql

create_user.sqlの中身は普通のユーザ作成

CREATE USER '9zilla'@'%' IDENTIFIED BY '9zilla';
GRANT ALL PRIVILEGES ON *.* TO '9zilla'@'%';
FLUSH PRIVILEGES;

SQLだけでなくシェルも実行されるらしいので、色々出来そうですね