どうやら最近、(おそらく2021/3/5リリースのdocker desktop for windows v3.2.1から)docker-composeの.envファイルの認識場所が変わったようです。特にVSCodeでRemote - Containersを使っている人は注意が必要です。
解決策
いままで.env
ファイルはdocker-compose
コマンドを実行したときのディレクトリ(ワーキングディレクトリ)にある必要があったのですが、今度からはdocker-compose.yml
と同じ階層に保存してください。
環境
備考 | ||
---|---|---|
OS | Windows10 | |
docker desktop for windows | 3.2.1 | |
docker-compose | 1.28.5 | |
VSCode | 1.54.1 | |
Remote - Containers | v0.163.2 |
前提知識
.env
ファイルとはdocker-compose.yml
中でホストの環境変数を使っているときに、ホストに使いたい環境変数が設定されていない場合の回避策として使えるファイルです。.env
ファイルについて書いた過去記事あるので参考にしてください。
変更点
いままでこの.env
ファイルはdocker-compose
コマンドを実行したときのディレクトリ(ワーキングディレクトリ)にないと認識しなかったのですが、今度からはdocker-compose.yml
と同じ階層にないと認識しなくなったようです。
例えば、
web:
image: "webapp:${TAG}"
TAG=v1.5
の2つを
dc_test/
└ test_directory/
├ .env
└ docker-compose.yml
と同じディレクトリに保存すれば、dc_test
階層からコマンドを打ったとしても、
dc_test> docker-compose -f test_directory/docker-compose.yml config
web:
image: webapp:v1.5
と今まで通り使えます。
VSCodeのRemote Containerで.envファイルを使っている人
VSCodeでRemote - Containersを使って、devcontainer.json
からdockerComposeFile
の項でdocker-compose.yml
を指定し、リモートコンテナを立ち上げていて、その際プロキシを設定するためなどに.env
ファイルを使っている方も多いと思います。
いままではVSCodeのルートディレクトリに.env
ファイルを置く必要があったと思いますが、今からは.envファイルはdocker-compose.yml
と同じフォルダに置くようにしてください。