是否可以对不同的服务使用不同的.env?

时间:2018-08-15 18:28:00

标签: docker docker-compose

我的情况是最好有多个.env文件,在docker-compose.yml中每个服务一个文件。有什么方法可以指定要使用的其他文件名?可以在单个服务级别上做到这一点吗?

不幸的是,我尝试使用env_file标签,该标签设置了变量以在Dockerfile中和运行时使用。另一方面,.env文件将变量设置为在docker-compose.yml中扩展。

2 个答案:

答案 0 :(得分:1)

很遗憾,无法为.env文件指定备用名称。我也希望能够将其交换出去,但是您可以看到in the source code就是直接被编码到.env的。

您是否有理由要为每个服务拆分替换变量?感觉您应该能够将所有服务的变量放入单个.env文件中。

答案 1 :(得分:0)

是的,使用env_file服务选项。

  

您可以使用“ env_file”选项将多个环境变量从外部文件传递到服务的容器,就像docker run --env-file = FILE ...:

web:
  env_file:
    - web-variables.env

原始文档:https://docs.docker.com/compose/environment-variables/#the-env_file-configuration-option