web-dev-qa-db-fra.com

La version dans "./docker-compose.yml" n'est pas prise en charge. Vous voyez peut-être cette erreur parce que vous utilisez la mauvaise version du fichier Compose

Voici mon fichier docker-compose.yml:

version: '3.1'

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

secrets:
  id: my_password

Si je lance $ docker-compose-up j'obtiens ceci:

La version dans "./docker-compose.yml" n'est pas prise en charge. Cette erreur est peut-être due au fait que vous utilisez une version de fichier Compose incorrecte.

Ma version de docker-compose: 

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

Quel est le problème ici? Ma version de docker-compose ne devrait-elle pas prendre en charge la v3.1 de la spécification docker-compose.yml (conformément à la release notes , elle le fait)?

64
Eric

Vous faites tout bien et cela devrait fonctionner. Mais il y avait un bug dans docker-compose 1.11.0 qui n'a pas reconnu le format de fichier 3.1 comme valide. (3.0 œuvres).

Il existe déjà une nouvelle version de docker-compose (1.11.1) qui inclut le correctif:

Corrections de bugs

Correction d'un bug où le format de fichier 3.1 n'était pas reconnu valide par l'analyseur Compose

Je vous recommande donc de mettre à jour votre version de docker-compose si vous souhaitez utiliser le format de fichier 3.1. 

Pour le moment, le moyen le plus sûr de mettre à niveau docker-compose est de le supprimer et de le réinstaller.

rm /usr/local/bin/docker-compose

Réinstaller:

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

Maintenant, il n'y a plus d'erreur sur le format de fichier. (Je n'ai pas testé avec votre .yml).

docker-compose up
Starting compose_a_1
Starting compose_b_1
69
lvthillo

J'ai résolu le problème en mettant à niveau docker-compose.

Suivez les étapes ci-dessous pour mettre à niveau docker-compose dans ubuntu16.04

étape 1:

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

étape 2:

$Sudo rm /usr/bin/docker-compose

étape 3:

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

étape 4:

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

Si vous utilisez linux/ubuntu , c’est peut-être évident, mais faites attention de ne pas utiliser root, par exemple.

docker-compose -v

Donne

docker-compose version 1.8.0, build unknown

contre

Sudo docker-compose -v 

Donne

docker-compose version 1.17.1, build 6d101fb

Assurez-vous également que docker-compose et docker-machine sont à jour en tant que @lvthillo states 

4
Glen Thompson

essayez de désinstaller l'ancienne version et de le réinstaller.

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

devrait imprimer 

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

Nous ne pouvons pas vous dire sans regarder l’erreur particulière D’abord la vérifier avec en exécutant cette commande

docker build . quand vous avez eu l’erreur puis faites une recherche dans google dans mon cas c’était l’erreur de permission quand j’ai essayé avec Sudo cela a fonctionné.

J'espère que cela vous aidera

1
user10538706

J'avais déjà utilisé docker-compose --version avant de mettre en œuvre la solution de lvthillo et des versions obsolètes apparaissaient toujours. Il s'est avéré que je devais vider la liste de hachage à laquelle mon bash se tenait. hash -r ... espérons que c'est utile pour quelqu'un d'autre

1
brandon

On osx 10.12.6 sierra

Étapes pour v1.22 ou supérieur

J'ai eu un problème spécifique/incompatibilité où je ne voulais pas mettre à niveau complètement docker. Je suis coincé actuellement sur le docker 17.06.0-ce-mac18. Donc, je voulais simplement mettre à jour docker-compos et rien d'autre.

Mes pas:

  • Identifiez l'emplacement de docker-compose: which docker-compose
  • Identifier la version de docker-compose: docker-compose --version = docker-compose version 1.14.0, build c7bdf9e
  • sauvegarde précédente docker-compose ?: mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • remplacer par curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • si vous avez besoin de déterminer la dernière version, vérifiez https://github.com/docker/compose/releases et remplacez la version ci-dessus par la plus récente.
  • vérifier la version: docker-compose --version = docker-compose version 1.22.0, build f46880f
0
wired00