13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-composeの.envファイルの認識場所が変わった

Last updated at Posted at 2021-03-15

どうやら最近、(おそらく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と同じ階層にないと認識しなくなったようです。

例えば、

docker-compose.yml
web:
  image: "webapp:${TAG}"
.env
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と同じフォルダに置くようにしてください。

13
4
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
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?