2016-08-16 4 views
0

Ich habe eine Compose-Datei:läuft Docker komponieren auf Schwarm

Docker-compose.yml

openjdk-6b36-jdk: 
    image: java:openjdk-6b36-jdk 
    volumes: 
    - ./src:/src 
    - ./build/openjdk-6b36-jdk:/build 
    command: /src/compileAndTest 

openjdk-7u79-jdk: 
    image: java:openjdk-7u79-jdk 
    volumes: 
    - ./src:/src 
    - ./build/openjdk-7u79-jdk:/build 
    command: /src/compileAndTest 

openjdk-8u66-jdk: 
    image: java:openjdk-8u66-jdk 
    volumes: 
    - ./src:/src 
    - ./build/openjdk-8u66-jdk:/build 
    command: /src/compileAndTest 

es läuft gut:

-bash-4.2$ docker-compose up 
Starting compose_openjdk-7u79-jdk_1 
Starting compose_openjdk-8u66-jdk_1 
Starting compose_openjdk-6b36-jdk_1 
Attaching to compose_openjdk-8u66-jdk_1, compose_openjdk-7u79-jdk_1, compose_openjdk-6b36-jdk_1 
openjdk-7u79-jdk_1 | Hello, World 
openjdk-8u66-jdk_1 | Hello, World 
openjdk-6b36-jdk_1 | Hello, World 
compose_openjdk-7u79-jdk_1 exited with code 0 
compose_openjdk-8u66-jdk_1 exited with code 0 
compose_openjdk-6b36-jdk_1 exited with code 0 

Ich möchte diese über Schwarm-Cluster laufen Was wäre der Befehl dazu?

würde es so etwas wie docker -H :4000 run <something>? sein, weil, dass der Befehl i Bilder laufen auf Schwarm Knoten verwendet, um

ich docker -H :4000 run hello-world gut laufen kann, aber das ist Docker Bilder. Wie führst du Docker über den Schwarmcluster?

ich möchte, dass compose_openjdk-7u79-jdk_1 zu einem Knoten geht und compose_openjdk-8u66-jdk_1 zu einem anderen Knoten geht und so weiter?

+0

Volume-Montage hier entfernen und ausführen wird es funktionieren. Wenn Sie Volumes im Schwarmmodus verwenden möchten. Sie müssen eine App erstellen, die im Schwarm-Manager mit benannten Volumes ausgeführt wird. –

Antwort

1

Gemäß der Dokumentation können Sie contraints auf Dienste hinzufügen:

https://docs.docker.com/compose/swarm/#/manual-scheduling

Ich habe es selbst nicht getestet.

+0

ja, aber diese documentaiton sagt "docker-compose up", um es zum Schwarm zu bekommen. es scheint nicht für mich zu arbeiten. – ealeon

+0

Möglicherweise müssen Sie 'version: '2'' der Datei' docker-compose.yml' verwenden. Würden Sie Ihren Post mit der gesamten Datei "docker-compose.yml" aktualisieren? – Martin