LoginSignup
9
6

More than 1 year has passed since last update.

docker-composeで修正が反映されない時

Posted at

発生した事象

docker-compose.yml と同階層の.envを変えても反映されない。
DB_NAMEやDB_USERを変えてもMySQLWorkBenchで確認したら変わっていなかった。
ところがWEB_PORTを変えたらブラウザでそのポート番号を叩くと画面表示できた。

WEB_PORT=84
DB_PORT=3302
DB_NAME=cms_template
DB_USER=phper
DB_PASS=secret

原因

結論からいうと、今回はDBをvolumesで永続化しているので

docker-compose -up --build

では、WEBサーバとPHPサーバのコンテナは全消去して作り直していたが、
DBサーバのコンテナは前の設定のまま残っていたから。
そもそも永続化しているのだから当たり前と言えば当たり前だが、docker-compose.yamlの変数部分と.envばかり見ていてなかなか
気づけなかった。

調べている途中で便利コマンドを載せてくれている記事を見つけました。
以下のコマンドを打つと、.envの変数を代入した後の状態のdocker-compose.yamlを表示してくれます。
これを使うと変数名が間違っているのかそれ以外の原因かで切り分けられます。

docker-compose config

そしてこれが解決法のコマンド。永続化したボリュームごと初期化する。
これを打ってから、docker-compose -up --build をやり直せば反映されました。

docker-compose down -v --rmi local

消さずにDB名後から変えたいとかだとMYSQLコマンドで直接DBを触ることになるのかなと思います。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6