首页 > 解决方案 > docker-compose 替代文件不会在该目录中获取 .env

问题描述

我正在使用 ELK(Elastic Search、Logstach 和 Kibana)堆栈之一,使用来自github的预先创建的 docker-compose.yml 。当我在克隆目录中并且docker-compose up一切正常时。它从与docker -compose.yml相同目录中的.env文件中获取ELK_VERSION=6.4.0

但是,例如,如果我向上一个目录并指定具有完整路径的撰写文件,它将不会拾取.env文件。 docker-compose -f "C:\progs\docker\docker-elk\docker-compose.yml" up. 它只会抱怨没有设置ELK_VERSION 。

我也尝试过设置项目目录,但没有运气。docker-compose -f "C:\progs\docker\docker-elk\docker-compose.yml" --project-directory "C:\progs\docker\docker-elk" up.

我不知道做什么,除了做

$ cd <elk compose dir>
$ docker-compose up
$ cd -

但这对我的小 OSS 库FluentDocker来说并不安全。我希望用户始终能够完全控制CurrentDirectory.

版本:docker-compose 版本 1.22.0,构建 f46880fe

干杯,
马里奥

标签: dockerdocker-compose

解决方案


官方文档说

Compose 支持在名为 .env 的环境文件中声明默认环境变量,该文件位于执行 docker-compose 命令的文件夹(当前工作目录)中。

如果将 .env 文件移动到执行 docker-compose 的文件夹中,它应该可以工作。


推荐阅读