私がやりたいのは、環境固有の微調整をoverride.ymlに分割することですが、そこには特別なことは何もありません...ただし、オーバーライドはデプロイされたすべてのサービスでまったく同じになり、単一のサービス(および、新しいサービスが導入されるたびに、オーバーライドに新しいセクションを継続的に追加します)。
代わりに、「このオーバーライドをすべてのサービスに適用する」という1つの定義を作成したいと思います。 私がおそらく欠けているような概念はすでに存在しますか?
例..。
docker-compose.yml:
aservice:
image: whatever1
environment:
FOO: BAR
別のdocker-compose.yml:
anotherservice:
image: whatever2
私のdocker-compose.override.yml:
<magickeyword>:
environment:
FLIBBLE: flobble
dns:
- server1
- server2
これで、デプロイされたすべてのサービスにDNS server1とserver2、および環境変数FLIBBLEが含まれるようになります。
すべてのサービスがオーバーライドを適用できるのと同じ基本サービスを拡張している場合、これを実行できることに気付きましたが、共通の拡張なしでグローバル/デフォルトのオーバーライドを設定する方法はありますか?
現時点では、定義されたサービスのオーバーライドスキャンを生成し、その場でオーバーライドファイルを生成するハックがありますが、私が最初に遭遇することはできないというユースケースのようです。作曲でこれに対する明白な解決策を見逃したばかりです。
environment
キーだけを含むbase
サービスを含む各プロジェクトフォルダーにbase.yml
ファイルを作成し、各サービスにbase
サービスを拡張させることができます。
extends:
が3.x https://github.com/moby/moby/issues/31101で削除されていることを考えると、これはもはや良い解決策ではありません
@samlチェックアウトhttps://github.com/docker/compose/pull/5140
最も参考になるコメント
@samlチェックアウトhttps://github.com/docker/compose/pull/5140