2017-08-14 5 views
4

Gibt es eine Möglichkeit, einen Docker Compose-Dienst so zu definieren, dass er nur mit up aufgerufen wird, wenn Sie ihn explizit anfordern?Können Sie optionale Docker-Compose-Dienste definieren?

Das heißt:

docker-compose up 

wäre es nicht starten, aber

docker-compose up optional_service 

würde.

+0

Möglicherweise ein Job für ['extends'] (https://docs.docker.com/compose/extends/). –

+1

Related: Antrag auf explizite Unterstützung für dieses Verhalten zu Docker Compose hinzufügen: https://github.com/docker/compose/issues/1896 – jwodder

+0

Zu mir haben Sie Ihre eigene Frage beantwortet. docker-compose up option_service funktioniert nicht? – hnandarusdy

Antwort

6

Eine Möglichkeit, dies zu erreichen, besteht darin, den optionalen Dienst in einer anderen Komponentendatei zu definieren. Dann den optionalen Dienst zu starten, führen Sie:

$ docker-compose -f docker-compose.yaml -f optional-service.yaml up 

Zum Beispiel, wenn ich eine Docker-compose.yaml-Datei, die wie folgt aussieht:

version: '2.1' 
services: 
    lb: 
    image: nginx:1.13   
    db: 
    image: redis:3.2.9 

ich es mit einem optionalen-Service erweitern kann. yaml, das wie folgt aussieht:

version: '2.1' 
services: 
    busy: 
    image: busybox 

Beachten Sie, dass beide Compose-Dateien dieselbe Compose-Dateiversion verwenden müssen.

Sie können mehr in der Compose documentation lesen.

+0

Wären Sie in der Lage, diese Dienste zu verknüpfen? – Dancrumb

+2

Standardmäßig werden alle Dienste in einem Compose-Projekt demselben Netzwerk hinzugefügt, ohne dass sie miteinander verknüpft werden müssen. Führen Sie 'docker-compose up' aus, folgen Sie einem' docker network ls'. Sie sehen ein Netzwerk, das nach dem Hinzufügen Ihres Compose-Projekts benannt ist. Hier ist der [link] (https://docs.docker.com/compose/networking/) zum Verfassen von Netzwerken. –

Verwandte Themen