公式の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だけでなくシェルも実行されるらしいので、色々出来そうですね