発生した事象
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を触ることになるのかなと思います。