2016-11-10 9 views
2

dockerが変数置換に使用するenvファイルを指定することはできますか?現在、デフォルトでは ".env"に設定されていますが、私は異なるenvを持つべきcomposeファイルの風味が異なります。envファイルの指定docker composeの使用

+0

私はこのhttps://docs.docker.com/compose/environment-variables/を見つけましたが、これは各コンテナにenv_fileが必要なようです。ドッカー作成ファイル全体に対してグローバルに設定することは可能ですか?デフォルト.env? – Zuriar

答えて

1

これには継承を使用できます。環境を設定する "基本"サービスが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ファイルに存在します複数のファイル、にこれを分割することができます。 extendsセクションにfile: base.yamlを追加するだけです。 the documentation hereをご覧ください。

このアプローチを使用して、すべてのコンテナのプロキシ変数を設定します。私は、シェルからプロキシ環境変数を取得するproxy-appサービスを定義するproxy.yamlファイルを持っています。私の実際のサービスはすべてproxy-appサービスを拡張し、そのサービスから環境設定を継承します。

関連する問題