アプリケーションを開始する最善の方法は、提供するdocker composeを使用することです。 docker-composeは、すべてのサービスを正しい構成で開始します。
次に、アプリケーションが異なるバックエンドで実行されるdocker-composeを提供したいと思います。この構成では、10のうち8つのサービスが同じで、2つのサービスが異なります。
コードを複製せずにこれを達成する方法?サービスは別のdocker-composeファイルからサービスを拡張できることがわかりますが、これには両方のファイルの10個のサービスすべてをリストする必要があります。
Docker-compose 1.6では、これが可能になります。
docker-compose.yml
共通サービス:
service01:
image: image01
links:
- service02
service02:
image: image02
2番目のファイル、docker-compose.prod.yml
独自のサービス:
service03:
image: image03
links:
- service02
これで、次のコマンドでサービス01、02、03を開始できます。
docker-compose -f docker-compose.yml -f docker-compose.prod.yml
詳細については、公式ドキュメントを参照してください: https://docs.docker.com/compose/extends/#multiple-compose-files
これを実現する最も簡単な方法は、2番目の構成ファイルを作成することです。 2番目のファイルでは、Docker Composeのextend
機能を使用して、別のファイルからサービスを「継承」できます。 https://docs.docker.com/compose/extends/
元のファイルがdocker-compose.yaml
であると仮定すると、swap-backend-compose.yaml
を作成できます:
service-one:
extends:
file: docker-compose.yaml
service: service-one
service-two:
extends:
file: docker-compose.yaml
service: service-two
environment:
- BACKEND=some_other_value
...等々。