複数のwordpress案件をdockerで開発していたところ、
以前は立ち上がっていたプロジェクトで
docker-compose up
した際、
wpのコンテナは起動するのにmysql:5.5.58
イメージが起動しない(立ち上がった直後強制終了)
という状態に(´;ω;`)
試したこと(全部だめ)
コンテナ再スタート
docker-compose stop
→docker-compose up
コンテナ削除・再構築・スタート
docker-compose down
→docker-compose build
→docker-compose up
別フォルダに再度環境構築
git clone
→docker-compose build
→docker-compose up
macのストレージを掃除(メモリ不足かと思った)
mac再起動(※セーフブート後、再構築)
すべて変わらず。
エラーログ
200317 8:52:24 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
200317 8:52:24 [Note] mysqld (mysqld 5.5.58) starting as process 1 ...
200317 8:52:24 [Note] Plugin 'FEDERATED' is disabled.
200317 8:52:24 InnoDB: The InnoDB memory heap is disabled
200317 8:52:24 InnoDB: Mutexes and rw_locks use GCC atomic builtins
200317 8:52:24 InnoDB: Compressed tables use zlib 1.2.3
200317 8:52:24 InnoDB: Using Linux native AIO
200317 8:52:24 InnoDB: Initializing buffer pool, size = 128.0M
200317 8:52:24 InnoDB: Completed initialization of buffer pool
InnoDB: Error: checksum mismatch in data file ./ibdata1
200317 8:52:24 InnoDB: Could not open or create data files.
200317 8:52:24 InnoDB: If you tried to add new data files, and it failed here,
200317 8:52:24 InnoDB: you should now edit innodb_data_file_path in my.cnf back
200317 8:52:24 InnoDB: to what it was, and remove the new ibdata files InnoDB created
200317 8:52:24 InnoDB: in this failed attempt. InnoDB only wrote those files full of
200317 8:52:24 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
200317 8:52:24 InnoDB: remove old data files which contain your precious data!
200317 8:52:24 [ERROR] Plugin 'InnoDB' init function returned error.
200317 8:52:24 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
200317 8:52:24 [ERROR] Unknown/unsupported storage engine: InnoDB
200317 8:52:24 [ERROR] Aborting
200317 8:52:24 [Note] mysqld: Shutdown complete
エラーログでググって、下記の記事にたどり着いたのだけど、
Mysql自体はruby案件で必要だったのでHomebrew経由でインストールしたことあるけれど、
色々試した結果、
dockerってmysqlもきっと内部で環境もっているよね・・?
・・となんとなく思い、docker関連で情報集める。
解決!
まずはこちらを参考に、docker内をゴミ掃除。
- 使ってないコンテナ
- 使ってないイメージ
- 使ってないネットワーク
を削除後、 docker-compose build --no-cache
を試す。
変わらず。
泣きそう・・😭はつづく。さらに調べると、こちらの記事を発見。
わたしの場合、docker-compose.ymlは特にいじっていなかったのだけど、
実はこの現象が起こる前、別案件のdockerの環境構築を行っていた。
そちらのdocker-compose.ymlを確認すると、
mysqlのバージョンはmysql:5.7.21
になっていて、
(どちらもcontainer_nameちゃんとついていたんだけども、)
なんかdocker内部のmysqlのバージョンのログ?が元になっているのだとすると、
効果あるかも・・・・ということで、先程やっていなかった「ボリュームの削除」を実行。
コンソールで出力してみたものの、volume IDがわからなかったので、
Visual Studio CodeのDocker ExtentionのGUIから削除。
↑右クリック+「Remove」
その後
docker-compose build --no-cache
すると!!!
動いた〜〜〜〜!!!!😭🙏✨
終わり
本当に・・3時間位摩耗したので、先人の記事に救われて感謝。
すべての人がこれで解決するのかは謎ですが、困ったら一度お試しを..!御加護を祈ります。
(解決はできたけど、結局、内情というか根本的な原因についてはわかってない・・・)