docker-composeに
- ./mysql/init.d:/docker-entrypoint-initdb.d
こんな感じで書いたらinit.dディレクトリにある.sqlとか.shとか実行してくれるらしいので試して見たところ実行された感じがしなかった。
mysql:
image: mysql:5.6
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=message
- MYSQL_USER=user
- MYSQL_PASSWORD=user
volumes:
- ./mysql/init.d:/docker-entrypoint-initdb.d
- dbdata:/var/lib/mysql
なので一旦コンテナを全部削除して再度buildし直したら別のエラーが出た
$ docker-compose up --build を実行したら別のエラーが出た
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
以下やったこと
# とりあえずコンテナを全部止める
$ docker-compose down
$ docker volume ls
# たくさんのVolumeが出てきた、エラーでストレージがなんとかかんとか言ってるので全部削除
$ sudo docker volume rm $(sudo docker volume ls -qf dangling=true)
$ docker-compose up --build を実行したら起動しました。
init.dディレクトリに入れておいたファイルも実行されてた。
ソース修正しながら何度も起動したり停止したりを繰り返してたので何処かのタイミングでデータがおかしくなっていたのかもしれない。
一旦全部消してみるは大切だな〜