2016-11-10 247 views
2

是否可以指定docker compose用于变量替换的env文件?目前它默认为“.env”,但我有不同的风格的撰写文件,应该有不同的envs。指定env文件docker撰写使用

+0

我发现这个https://docs.docker.com/compose/environment-variables/但这似乎需要env_file每个容器..是否有可能在全球范围内设置了这样整个泊坞窗,撰写文件重写默认.env? – Zuriar

回答

1

你可以为此使用继承。如果您在设置环境时有一个“基础”服务,则您的所有其他服务都可以继承该服务。

例子:

version: "2" 

services: 
    base: 
    env_file: 
     - my_env.txt 

    web: 
    extends: 
     service: base 
    image: foo 

    database: 
    extends: 
     service: base 
    image: foo-db 

上面的例子在同一个文件中的一切,但你也可以拆分此成多个文件,其中base服务将驻留在base.yaml文件。您只需将file: base.yaml添加到extends部分即可。请参阅the documentation here

我用这个方法来设置代理变量的所有容器。我有一个proxy.yaml文件,它定义了一个proxy-app服务,它从shell中获取代理环境变量。我所有的真实服务都会扩展proxy-app服务,从而继承该服务的环境设置。