web-dev-qa-db-de.com

Version in "./docker-compose.yml" wird nicht unterstützt. Möglicherweise wird dieser Fehler angezeigt, weil Sie die falsche Version der Compose-Datei verwenden

Hier ist meine docker-compose.yml-Datei:

version: '3.1'

services:
  a:
    image: tutum/hello-world
  b:
    image: tutum/hello-world

secrets:
  id: my_password

Wenn ich $ docker-compose-up starte, bekomme ich folgendes:

Version in "./docker-compose.yml" wird nicht unterstützt. Möglicherweise wird dieser Fehler angezeigt, weil Sie die falsche Version der Compose-Datei verwenden.

Meine Docker-Compose-Version: 

$ docker-compose --version
docker-compose version 1.11.0, build 6de1806

Was ist hier los? Sollte meine Docker-Compose-Version nicht die Version 3.1 der Docker-Compose.yml-Spezifikation unterstützen (gemäß den Versionshinweisen )?

64
Eric

Sie machen alles richtig und es sollte funktionieren. Es gab jedoch einen Fehler in Docker-Compose 1.11.0, der das Dateiformat 3.1 nicht als gültig erkannte. (3.0 funktioniert).

Es gibt bereits eine neue Version von docker-compose (1.11.1), die den Bugfix enthält:

Fehlerbehebung

Fehler behoben, durch den das 3.1-Dateiformat vom Compose-Parser nicht als gültig erkannt wurde

Daher würde ich empfehlen, Ihre Docker-Compose-Version zu aktualisieren, wenn Sie das Dateiformat 3.1 verwenden möchten. 

Momentan ist es am sichersten, wenn Sie Docker-Compose aktualisieren, indem Sie es löschen und erneut installieren.

rm /usr/local/bin/docker-compose

Neu installieren:

curl -L https://github.com/docker/compose/releases/download/1.11.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.11.1, build 7c5d5e4

Nun gibt es keinen Fehler mehr im Dateiformat. (Ich habe nicht mit Ihrem .yml getestet).

docker-compose up
Starting compose_a_1
Starting compose_b_1
69
lvthillo

Ich habe das Problem durch ein Upgrade von docker-compose behoben.

Befolgen Sie die folgenden Schritte zum Upgrade von Docker-Compose in Ubuntu16.04

schritt 1:

$which docker-compose
/usr/bin/docker-compose

schritt 2:

$Sudo rm /usr/bin/docker-compose

schritt 3:

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

schritt 4:

chmod +x /usr/bin/docker-compose
34
thavaamm

Wenn Sie linux/ubuntu verwenden, ist dies offensichtlich, aber seien Sie vorsichtig, wenn Sie als root ausführen, z.

docker-compose -v

Gibt

docker-compose version 1.8.0, build unknown

vs

Sudo docker-compose -v 

Gibt

docker-compose version 1.17.1, build 6d101fb

Stellen Sie außerdem sicher, dass docker-compose und docker-machine auf dem neuesten Stand sind, als @lvthillo state 

4
Glen Thompson

versuchen Sie, die alte Version zu deinstallieren und erneut zu installieren.

Sudo apt remove docker-compose
Sudo curl -L Sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Sudo chmod +x /usr/local/bin/docker-compose
reboot

sollte ausdrucken 

docker-compose --version
docker-compose version 1.22.0, build 1719ceb
1
qwerty

Wir können es Ihnen nicht sagen, ohne den jeweiligen Fehler zu beobachten Überprüfen Sie ihn zuerst, indem Sie diesen Befehl ausführen

docker build . wenn Sie den Fehler erhalten haben, suchen Sie ihn in google In meinem Fall war es der Berechtigungsfehler, als ich ihn mit Sudo versuchte.

Ich hoffe es wird dir helfen

1
user10538706

Ich hatte docker-compose --version vor der Implementierung der Lösung von lvthillo gemacht und bekam immer noch veraltete Versionen. Es stellte sich heraus, dass ich die Hash-Liste leeren musste, an der sich Shell hielt. hash -r ... hoffe das ist nützlich für jemanden

1
brandon

On osx 10.12.6 sierra

Schritte für v1.22 oder höher

Ich hatte ein spezifisches Problem/Inkompatibilität, bei dem ich Docker nicht vollständig aktualisieren wollte. Ich bin derzeit am Docker 17.06.0-ce-mac18 hängen geblieben. Also wollte ich nur Docker-Compose verbessern und sonst nichts.

Meine Schritte:

  • Ort des Docker-Composes angeben: which docker-compose
  • Ermitteln Sie die Docker-Compose-Version: docker-compose --version = docker-compose version 1.14.0, build c7bdf9e
  • backup vorheriger Docker-Compose ?: mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • ersetzen Sie mit curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • wenn Sie die neueste Version ermitteln möchten, überprüfen Sie einfach https://github.com/docker/compose/releases und ersetzen Sie die obige Version durch die neueste Version.
  • version überprüfen: docker-compose --version = docker-compose version 1.22.0, build f46880f
0
wired00