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)?
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
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
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
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
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
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
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:
which docker-compose
docker-compose --version
= docker-compose version 1.14.0, build c7bdf9e
mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
docker-compose --version
= docker-compose version 1.22.0, build f46880f