概要
- DockerのDBコンテナが立ち上がらない問題が発生した。
問題までの経緯
- docker-compose upで初回のコンテナビルドを実施した。
- フロント用、バック用のコンテナは普通に起動した。
問題
-
$ docker ps
コマンドを使って調べてみるとDBのコンテナだけ起動していないことが分かった。
問題解決までの経緯
-
一回下記方法でコンテナとイメージを削除した。
-
$ docker pa -a
でコンテナ一覧の出力 -
$ docker rm コンテナID
でフロント用、バック用、DB用のコンテナを削除 -
$ docker images
でイメージ一覧の出力 -
$ docker rmi イメージID
でフロント用、バック用、DB用のイメージを削除
-
-
もう一度各コンテナの起動を実施。
-
やはりDBコンテナだけ立ち上がらない。
-
Docker for Macのダッシュボードを開く。
-
「Containers」から当該のコンテナを探し出し「再生ボタン」をクリックして起動を試みた。
-
下記のようなエラーが出た。
Could not open file '/var/log/mysql/mysql-error.log' for error logging: No such file or directory The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it. Aborting
-
どうやらDBコンテナの
/var/log/mysql/
のmysql-error.logファイルに書き込めないっぽい。ディレクトリが存在しないか、権限が無いかのどちらかっぽい気がする。 -
僭越ながらDBのDockerファイルに下記の様にディレクトリの作成と権限をMySQLユーザーにするように記載して、再度コンテナとイメージの削除を行い、もう一度各コンテナを再起動した。
RUN mkdir /var/log/mysql RUN chown mysql:mysql /var/log/mysql
-
問題は解決し、DBコンテナが正常に立ち上がった。