MySQL on Docker で MySQL init process failed.
$ docker-compose up ... mysql_1 | MySQL init process in progress... mysql_1 | MySQL init process in progress... mysql_1 | MySQL init process in progress... mysql_1 | MySQL init process in progress... mysql_1 | MySQL init process in progress... mysql_1 | MySQL init process failed.
以前、環境変数 MYSQL_HOST
が悪さをするバグがあったらしいけど既に解消済みらしい。
開発時にいちいちホストOS からパスワードを入力してログインするのが面倒で /etc/mysql/conf.d/mylogin.cnf
にこんな設定を書いていた
[client] password="pass"
MySQL コンテナの初期化時に [client]
が書かれていると init process filad.
で落ちるのは既知の問題らしい(まぁそりゃそうだ)
- MySQL init process failed. · Issue #251 · docker-library/mysql · GitHub
- MySQL init process in progress... MySQL init process failed. · Issue #82 · docker-library/mysql · GitHub
パスワードを簡単にするのでもいいけど、~/.my.cnf
は初期化プロセスに関係しないらしいので置き場所を変えてやればいい。root なのはご愛嬌
$ git diff docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml index 1d974da..b09d973 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: TZ: Asia/Tokyo volumes: - .:/project:delegated - - ./docker/mysql/conf.d/mylogin.cnf:/etc/mysql/conf.d/mylogin.cnf + - ./docker/mysql/my.cnf:/root/.my.cnf - ./docker/mysql/initdb.d:/docker-entrypoint-initdb.d - mysql:/var/lib/mysql security_opt:
データボリュームの初期化はこう
docker-compose down --volumes mysql
init process するスクリプトの本体はこの辺 github.com
他にもタイムアウト伸ばしたら?とか、メモリ足りないんじゃない?とかいう話もある