「.env」ファイルでいくつかの構成変数を定義しています。
したがって、compose ymlファイルで次のように使用できる場合は、次のようになります。
environment:
- VAR=${VAL_FROM_ENV}
env_file:
- etc/environment.yml
これをenvironment.ymlで使用できないのはなぜですか?
DEMO_VAR='${VAL_FROM_ENV}'
env_fileはファイル内の環境フィールドの拡張子であると考えており、シェル変数からのオーバーライドを順守することも完全に理にかなっています。
.envファイルはCompose用であり、environment / env_fileはdocker-containers用であることは私には理にかなっています。
また、ターミナルenv変数が.env内のものをオーバーライドすることも私には完全に理にかなっています。
多くのenv.ymlファイルまたは1つだけを持って、それを再利用できるのはかなりクールだと思います。 それを同じように機能させると、環境フィールド変数は、構成全体を劇的に動的にし、相互接続します(そして、すべてをどこにでも渡すわけではありません)。 そして、私は多くの異なる場所ですべてを再入力する必要はありません。
背景-私はDockerマシン/コンポーズ(以前はvagrantを使用)を使用してMacで開発環境を調整しており、アプリごとのすべての重要な設定を1つのファイル(アプリはコンポーズファイルで定義されたスタックで実行される)に保持する方法を探していました。 IMHOを使用すると、多くのプロジェクト/開発者とのやり取りが楽になります。 また、機密データをさまざまな構成ファイルにハードコーディングするのは本当に好きではありません。
私は#3435(environmentまたはenv_fileによって設定された変数の補間)に関する議論を続けてきました。それはひどく欲しいのですが、compose ymlファイルは他の場所(compose / dockerファイルで使用される変数を定義するのに適した場所ではないと思いますか? )それは、変数の完全に読み取り不可能な組み合わせにつながるためです(誰がどこから設定または読み取りを行っていますか?)。
ありがとう。 :)
docker-composeバージョン
docker-composeバージョン1.8.0、ビルド不明
docker-pyバージョン:1.9.0
CPythonバージョン:2.7.10
OpenSSLバージョン:OpenSSL 0.9.8zh 2016年1月14日
この部分が機能しないと、本当に一貫性のない実装になります。
この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。
この問題は、失効期間中に最近のアクティビティがなかったため、自動的にクローズされました。
最も参考になるコメント
この部分が機能しないと、本当に一貫性のない実装になります。