前提
.envファイル
を変更する前に既にDockerコンテナを起動済みであること。
そもそもの話
実は.env
を変更して保存するだけでは、起動済みのコンテナに変更内容が反映されません。
また、単純に以下のようにコンテナを再起動しても反映されない可能性が高いです。
# コンテナを再起動する
docker-compose restart
変更を反映するための手順
.env
の変更を確実に反映させるためには、以下の手順を踏む必要があります。
-
.env
を変更して保存する。 - プロジェクトのルートディレクトリでコンテナの削除コマンドを実行する。
# ボリュームごとコンテナを削除する
docker-compose down -v
この時、vオプション
をつけてコンテナのボリュームごと削除するのがポイントです。
ボリュームには、初期の.env
の内容をもとに設定された情報が永続的に保存されてしまいます。そのため、再起動しても初期の設定で作られたボリュームの情報をもとにコンテナが起動されて.env
の変更が反映されないことがあるからです。
ですので、ボリュームごとコンテナを吹っ飛ばしてやる必要があります。
- コンテナを起動
(バックグラウンドで起動したければdオプション
をつける)
# バックグラウンドでコンテナを起動
docker-compose up -d
おわり
この手順を踏めば.env
の変更が反映されるはずです。
最後まで読んでくださりありがとうございました。