docker-compose不能识别env_file文件/位置,并仍然尝试使用默认的.env

这是我的撰写文件dev.yml

 version: '2' volumes: rethinkdb_data_dev: {} services: rethinkdb: image: rethinkdb:latest volumes: - rethinkdb_data_dev:/home/rethinkdb_data rabbitmq: image: rabbitmq:latest fumio: build: context: . dockerfile: ./compose/fumio_dev/Dockerfile depends_on: - rethinkdb - rabbitmq links: - rethinkdb - rabbitmq env_file: ./compose/fumio_dev/dev.env environment: - GIRLFRIEND_FUMIO_CONFIG=development - GIRLFRIEND_FUMIO_NOSQLDATABASE_HOST=rethinkdb ports: - "${GIRLFRIEND_FUMIO_PORT}:8001" 

dev.yml文件中的environment是有意的,所以如果需要的话,我可以用dev.env覆盖它们。

我的dev.env文件位于compose/fumio_dev/文件夹内,相对于dev.yml文件。

 GIRLFRIEND_FUMIO_PORT=8000 

当我运行docker-compose -f dev.yml build时会发生什么情况

在这里输入图像说明

如果我在根文件夹中提供.env文件,它运行良好, env_file -compose忽略env_file的值,并尝试使用默认的.env代替。 所以docker-compose env_file是不是按预期工作,或者我失去了一些东西?

我的docker-compose版本是1.8.0,我降级到1.7.1,但仍然没有运气(使用pip安装)。

项目根中的.env文件和Compose文件中的env_file:字段是两个不同的概念。

.env是用于Compose默认环境的设置。 在这个文件中设置的值可以在Compose文件中使用。

env_file:字段用于设置容器的默认环境。 在此设置的值可以在容器中使用,但不能在撰写文件中使用。

有关更多信息,请参见https://docs.docker.com/compose/env-file/