2016-11-10 254 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服務,從而繼承該服務的環境設置。