Compose: すべてのサービスのグローバル/デフォルトオーバーライド

作成日 2017年04月19日  ·  3コメント  ·  ソース: docker/compose

私がやりたいのは、環境固有の微調整を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が含まれるようになります。

すべてのサービスがオーバーライドを適用できるのと同じ基本サービスを拡張している場合、これを実行できることに気付きましたが、共通の拡張なしでグローバル/デフォルトのオーバーライドを設定する方法はありますか?

現時点では、定義されたサービスのオーバーライドスキャンを生成し、その場でオーバーライドファイルを生成するハックがありますが、私が最初に遭遇することはできないというユースケースのようです。作曲でこれに対する明白な解決策を見逃したばかりです。

kinquestion

最も参考になるコメント

全てのコメント3件

environmentキーだけを含むbaseサービスを含む各プロジェクトフォルダーにbase.ymlファイルを作成し、各サービスにbaseサービスを拡張させることができます。

extends:が3.x https://github.com/moby/moby/issues/31101で削除されていることを考えると、これはもはや良い解決策ではありません

このページは役に立ちましたか?
0 / 5 - 0 評価