多个docker撰写文件,并指定env_file

我正在使用docker创build基本configuration并对其进行扩展的项目。 我的基地docker-compose.yml文件有links ,所以我不能在扩展撰写文件中使用extends参数。 相反,我将多个docker-compose文件指定给docker-compose工具。

这是工作得很好,除了看起来.env文件的path总是相对于指定的第一个docker-compose.yml文件,这打破了我的预期function。

例:

docker-compose.yml (生活在一个共同的位置,让我们说~/base-app

 web: build: . volumes: - .:/usr/src/app ports: - "80:3000" links: - redis redis: image: redis:latest ports: - "6379:6379" 

现在在一个孩子的应用程序,我想指定一个commandenv_file

泊坞窗,compose.override.yml

 web: environment: NODE_ENV: development env_file: .env command: node server.js 

当我运行这个设置时,我会使用下面的命令:

 docker-compose -f ~/base-app/docker-compose.yml -f docker-compose.override.yml up 

这个效果很好,只要我不指定一个env_file 。 但是在指定了env_file ,我会得到如下错误:

 ERROR: Couldn't find env file: ~/base-app/.env 

阅读docker-compose文档 ,它说当使用-f标志时,env文件path是相对于docker-compose文件的。

我错过了什么,或者这是一个错误? 什么将是一个干净的方式使用.env文件相对于覆盖docker撰写文件?